看个例子吧SELECT DISTINCT pub_nameFROM publishersWHERE EXISTS(SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type = 'business')
如果从客户端查看,则全要返回一个recordset才行,请各位老师看下面两种方式哪一种更好些? 1.select count(*) ad jlts from table where bh=89 --如果字段ad>=1则说明有记录 2. if exists(select * from table where bh=89 ) select 1 as jlts --1代表有记录 else select 0 as jlts --0代表没有记录 将select 结果返回客户端,通过ado记录集来判断,我不知以上两种方式哪种更好些。 诚心请教,水平菜,别笑我呀!
--其实也就这样!语句可以再简洁 1.select count(*) as jlts from table where bh=89 --如果字段ad>=1则说明有记录--改为select count(1) as jlts from table where bh=89, 这个同样可以给一个数据集,而且可以看到有没有,有的话,有几笔,看你需要2.-- if exists(select 1 from table where bh=89 ) select 1 as jlts --1代表有记录 else select 0 as jlts --0代表没有记录 --我建议只是看有没有,用return即可,这样可以直接一点 if exists(select 1 from table where bh=89 ) return 1 --1代表有记录 else return 0 --0代表没有记录
if exists(select 1 from table where bh=89 ) select 1 as jlts --1代表有记录 else select 0 as jlts --0代表没有记录 --我建议只是看有没有,用return即可,这样可以直接一点 if exists(select 1 from table where bh=89 ) return 1 --1代表有记录 else return 0 --0代表没有记录 ---------------------------- 谢谢,我想再问问,如果想返回客户端记录集,是不是return 1 这种方式也能返回呀?或者是必须要用select 语句。谢谢。
FROM titles
WHERE pub_id = publishers.pub_id
AND type = 'business')
1.select count(*) ad jlts from table where bh=89 --如果字段ad>=1则说明有记录
2.
if exists(select * from table where bh=89 )
select 1 as jlts --1代表有记录
else
select 0 as jlts --0代表没有记录
将select 结果返回客户端,通过ado记录集来判断,我不知以上两种方式哪种更好些。
诚心请教,水平菜,别笑我呀!
1.select count(*) as jlts from table where bh=89 --如果字段ad>=1则说明有记录--改为select count(1) as jlts from table where bh=89, 这个同样可以给一个数据集,而且可以看到有没有,有的话,有几笔,看你需要2.--
if exists(select 1 from table where bh=89 )
select 1 as jlts --1代表有记录
else
select 0 as jlts --0代表没有记录
--我建议只是看有没有,用return即可,这样可以直接一点
if exists(select 1 from table where bh=89 )
return 1 --1代表有记录
else
return 0 --0代表没有记录
select 1 as jlts --1代表有记录
else
select 0 as jlts --0代表没有记录
--我建议只是看有没有,用return即可,这样可以直接一点
if exists(select 1 from table where bh=89 )
return 1 --1代表有记录
else
return 0 --0代表没有记录
----------------------------
谢谢,我想再问问,如果想返回客户端记录集,是不是return 1 这种方式也能返回呀?或者是必须要用select 语句。谢谢。
那么取得时候在查询编译器:declare @returnValue int
exe @returnValue =sp名字 参数。。
这样return 的值就付给@returnValue 在前台调用就要直接执行command后取参数0如果是select ,那么在查询编译器:
exe sp名字 参数。。
就可以看到select的值如果是在前台,可以付给一个数据集,然后取出来即可