T-sql运行第一个查询,然后运行CASE第二个查询和输出数据或“不”#39;

时间:2018-05-31 21:16:06

标签: sql sql-server tsql sql-server-2016

如果@blah等于是,但输出'否'嘿所有我想要输出数据如果没有。

这是我目前的查询:

DECLARE @blah VARCHAR(MAX)

SET @blah = (SELECT 
   CASE WHEN 
      COUNT(email) = '1' THEN     'Yes'
      ELSE                        'No'
   END
FROM 
   usersTbl 
WHERE 
   email = 'someone@somewhere.com');
SELECT
   CASE WHEN 
      @blah =                     'Yes' THEN 
     (SELECT * 
      FROM 
         usersTbl 
      WHERE 
         email = 'someone@somewhere.com')
      ELSE                        'No'
   END
FROM 
   usersTbl;

目前我得到的错误是:

  

当EXISTS没有引入子查询时,只能在选择列表中指定一个表达式。

我错过了什么?

1 个答案:

答案 0 :(得分:6)

您可以在此处使用EXISTS。这样的事情。

if exists
(
    SELECT * 
      FROM 
         usersTbl 
      WHERE 
             email = 'someone@somewhere.com'
)
SELECT * 
      FROM 
         usersTbl 
      WHERE 
             email = 'someone@somewhere.com'
ELSE
    select 'No'