我使用以下SELECT
查詢基於兩列,以產生一個結果列:串聯列,如果不相等
SELECT colA + '(' + colB + ')' AS formattedCol from mytable WHERE ...
但是如果colA
和colB
值等於我只是需要具備的價值colA
。
有沒有辦法在SQL中做到這一點?
我使用以下SELECT
查詢基於兩列,以產生一個結果列:串聯列,如果不相等
SELECT colA + '(' + colB + ')' AS formattedCol from mytable WHERE ...
但是如果colA
和colB
值等於我只是需要具備的價值colA
。
有沒有辦法在SQL中做到這一點?
正如你所指出的,@Andrew,I如果由MS Access使用的,所以:
SELECT IIf([colA] = [colB], [colA], [colA] & '(' & colB & ')') AS formattedCol
FROM mytable WHERE
注意,在MS Access中的字符串連接符是&,而不是+。當列爲空時,使用+會導致返回null。
SELECT CASE
WHEN colA = colB
THEN colA
ELSE colA + '(' + colB + ')'
END AS formattedCol from mytable WHERE ...
在MS Access中,字符串連接符是&not +,如果其中一列爲空,則會返回null。 – Fionnuala 2012-01-06 11:31:26
這一切都變得有點瘋了,讓我們結束吧,IIF是這裏最好的解決方案,Remou的答案應該是公認的答案。 – 2012-01-06 15:58:20