SQL IF/ELSE语句

SQL IF/ELSE语句,sql,sql-server,tsql,if-statement,Sql,Sql Server,Tsql,If Statement,我有一个Select语句,其中我需要添加一个IF/ELSE语句 IF @P_COUNT = 'X' show the Count(*) FROM SELECT statement ELSE I need to return table from the SELECT statement results 目前这是我所拥有的,但它不能正常工作 @P_COUNT VARCHAR(1) IF @P_COUNT = 'X' SELECT COUN

我有一个Select语句,其中我需要添加一个IF/ELSE语句

IF @P_COUNT = 'X' 
    show the Count(*) FROM SELECT statement 
ELSE 
    I need to return table from the SELECT statement results 
目前这是我所拥有的,但它不能正常工作

@P_COUNT            VARCHAR(1)

IF @P_COUNT = 'X' 
    SELECT COUNT(*) 
    ELSE SELECT * FROM (
   (SELECT ... UNION ... ) AS A
    LEFT JOIN 
   (SELECT A, B, C, D FROM Table_1) AS B
    ON WHERE A.XX = B.XX
    LEFT JOIN 
   (SELECT A, B, C, D FROM Table_1) AS C
    ) AS D 
目前的结果:

IF @P_COUNT = 'X', RESULT => 1 Expected => 26017
IF @P_COUNT = '', RESULT => returns proper Select statement.  
提前感谢您的帮助

这就是你想要的吗

IF @P_COUNT = 'X' 
BEGIN
   SELECT COUNT(*) 
   FROM (
   (SELECT ... UNION ... ) AS A
    LEFT JOIN 
   (SELECT A, B, C, D FROM Table_1) AS B
    ON WHERE A.XX = B.XX
    LEFT JOIN 
   (SELECT A, B, C, D FROM Table_1) AS C
    ) AS D 
END
ELSE
BEGIN
   SELECT * FROM (
   (SELECT ... UNION ... ) AS A
    LEFT JOIN 
   (SELECT A, B, C, D FROM Table_1) AS B
    ON WHERE A.XX = B.XX
    LEFT JOIN 
   (SELECT A, B, C, D FROM Table_1) AS C
    ) AS D 
END;

您有两个单独的SELECT查询。它们都需要一个FROM子句。

我不知道第二个代码块与第一个代码块有什么关系。您正在处理多少个表?您能显示调用代码吗?不能创建在某些情况下返回标量值而在其他情况下返回表的函数。您必须使用两个不同的函数。这看起来像一个。你想做什么?戈登提供的答案很有效。。。我对SQL非常陌生,语法很混乱。Gordon解释说有两个单独的Select查询,每个查询都需要自己的FROM子句。我将使用single From子句返回结果。。。。