[英]Select statement inside CASE - SQL
我試圖找出以下邏輯的正確代碼。 如果第一列中存在特定值,則顯示該特定記錄的第二列中的值。 有人可以幫忙嗎? 謝謝。
CASE WHEN TableA.Column1 = 'a' THEN 'select TableA.Column2 '
WHEN TableA.Column4 = 'b' THEN 'select TableA.Column5'
ELSE TableA.Column6
END AS [Test]
你幾乎就在那里刪除select
from case statement
。 由於所有值都來自同一個表,因此不需要select
in case語句只保留column name
,它將獲取相應的列值。
SELECT CASE
WHEN Column1 = 'a' THEN Column2
WHEN Column4 = 'b' THEN Column5
ELSE Column6
END AS [Test]
FROM tableA
嘗試這個:
SELECT (CASE WHEN A.Column1 = 'a' THEN A.Column2
WHEN A.Column4 = 'b' THEN A.Column5
ELSE A.Column6
END) AS [Test]
FROM TableA A;
您已經在SELECT
,因此您不需要在其中添加其他SELECT
:
SELECT
...
, CASE WHEN TableA.Column1 = 'a' THEN TableA.Column2
WHEN TableA.Column4 = 'b' THEN TableA.Column5
ELSE TableA.Column6
END AS [Test]
FROM
TableA
...
你可以把它寫成:
select CASE WHEN TableA.Column1 = 'a' THEN TableA.Column2
WHEN TableA.Column4 = 'b' THEN TableA.Column5
ELSE TableA.Column6
END AS [Test]
from tableA
在你的情況下甚至更短:
select CASE TableA.Column1
WHEN 'a' THEN TableA.Column2
WHEN 'b' THEN TableA.Column5
ELSE TableA.Column6
END AS [Test]
from tableA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.