if exists(select 1 from 表)
print '存在数据'
else
print '不存在'

解决方案 »

  1.   

    看个例子吧SELECT DISTINCT pub_nameFROM publishersWHERE EXISTS(SELECT *
    FROM titles
    WHERE pub_id = publishers.pub_id
    AND type = 'business')
      

  2.   

    如果从客户端查看,则全要返回一个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记录集来判断,我不知以上两种方式哪种更好些。
    诚心请教,水平菜,别笑我呀!
      

  3.   

    --其实也就这样!语句可以再简洁
    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代表没有记录
      

  4.   

    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 语句。谢谢。
      

  5.   

    谢谢,我想再问问,如果想返回客户端记录集,是不是return 1 这种方式也能返回呀?或者是必须要用select 语句。谢谢。2者均可如果是return 1
    那么取得时候在查询编译器:declare @returnValue int
    exe @returnValue  =sp名字 参数。。
    这样return 的值就付给@returnValue 在前台调用就要直接执行command后取参数0如果是select ,那么在查询编译器:
    exe sp名字 参数。。
    就可以看到select的值如果是在前台,可以付给一个数据集,然后取出来即可