0
我試圖根據SELECT
中的變量返回不同的數據。事情是這樣的:SQL SELECT語句塊使用IF ELSE
SELECT
IF @variable = 'YES'
column1, column2
ELSE
column3
FROM TABLE
什麼,這是使用SQL的IF
條件的正確方法?還是有更好的選擇,我想要完成什麼?
我試圖根據SELECT
中的變量返回不同的數據。事情是這樣的:SQL SELECT語句塊使用IF ELSE
SELECT
IF @variable = 'YES'
column1, column2
ELSE
column3
FROM TABLE
什麼,這是使用SQL的IF
條件的正確方法?還是有更好的選擇,我想要完成什麼?
您可以使用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
如果你想返回不同的列數,你需要使用一個IF
:
IF @variable = 'YES'
BEGIN
SELECT column1, column2
FROM YourTable
END
ELSE
BEGIN
SELECT column3
FROM YourTable
END
如果你想在同一列不同的數據(假設相同的數據類型),你可以使用a CASE
:
SELECT CASE WHEN @variable = 'YES' THEN column1 ELSE Column2 AS Data
FROM YourTable