gre*_*ner 0 sql t-sql sql-server if-statement
我试图根据 中的变量返回不同的数据SELECT。像这样的东西:
SELECT
IF @variable = 'YES'
column1, column2
ELSE
column3
FROM TABLE
Run Code Online (Sandbox Code Playgroud)
在 SQL 中使用IF条件的正确方法是什么?或者有比我想要完成的更好的选择吗?
如果您想返回不同数量的列,则需要使用IF:
IF @variable = 'YES'
BEGIN
SELECT column1, column2
FROM YourTable
END
ELSE
BEGIN
SELECT column3
FROM YourTable
END
Run Code Online (Sandbox Code Playgroud)
如果您希望同一列上有不同的数据(假设数据类型相同),您可以使用CASE:
SELECT CASE WHEN @variable = 'YES' THEN column1 ELSE Column2 AS Data
FROM YourTable
Run Code Online (Sandbox Code Playgroud)