我试图根据 a 中的变量返回不同的数据SELECT
。像这样的东西:
SELECT
IF @variable = 'YES'
column1, column2
ELSE
column3
FROM TABLE
这是IF
在 SQL 中使用条件的正确方法是什么?还是有更好的选择来代替我想要完成的事情?
我试图根据 a 中的变量返回不同的数据SELECT
。像这样的东西:
SELECT
IF @variable = 'YES'
column1, column2
ELSE
column3
FROM TABLE
这是IF
在 SQL 中使用条件的正确方法是什么?还是有更好的选择来代替我想要完成的事情?
如果要返回不同数量的列,则需要使用IF
:
IF @variable = 'YES'
BEGIN
SELECT column1, column2
FROM YourTable
END
ELSE
BEGIN
SELECT column3
FROM YourTable
END
如果您想要同一列上的不同数据(假设相同的数据类型),您可以使用CASE
:
SELECT CASE WHEN @variable = 'YES' THEN column1 ELSE Column2 AS Data
FROM YourTable
您可以使用 IF 语句,但您需要设置多个查询。您可以使用 CASE 选择一列或另一列,但不能在您的问题中选择一列或多列。
DECLARE @var INT = 1;
DECLARE @test TABLE (
Col1 int,
Col2 int,
Col3 int
)
INSERT INTO @test VALUES (1,2,3)
IF @var = 1
BEGIN
SELECT Col1, Col2
FROM @test
END
ELSE
BEGIN
SELECT Col3
FROM @test
END