如果/ Else语句在T-SQL中返回select查询

时间:2011-05-31 19:19:37

标签: sql-server tsql stored-procedures

我需要为SQL Server编写一个存储过程。 它需要像:

Select * from tblSomething
Where param in (If param1 like 'string' select * from tblTable where condition1
            Else select * from tblTable where condition2)

问题所有if else示例都打印了一些内容并且不返回select查询。 你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

IF param1 LIKE 'string'
    SELECT *
        FROM tblSomething
        WHERE param IN (SELECT * FROM tblTable WHERE condition1)
ELSE
    SELECT *
        FROM tblSomething
        WHERE param IN (SELECT * FROM tblTable WHERE condition2)

答案 1 :(得分:1)

我不确定这是不是你想要的。

IF EXISTS (SELECT * FROM tblSomething WHERE param1 like 'string')
  SELECT * FROM tblSomething WHERE param IN (SELECT * FROM tblTable WHERE condition1)
ELSE
  SELECT * FROM tblSomething WHERE param IN (SELECT * FROM tblTable WHERE condition2)

我是TSQL的新手,所以任何改进的评论都会受到赞赏。