問題: 數據庫列表包含三態(0,1,2)。 每個值都在服務器端使用。修改SELECT語句(TSQL)的返回值[優化查詢]
客戶端代碼(不能改變)只能理解'0,1'。 在客戶端視圖中,'1'與'2'一致。所以我想要更改數據庫中的SQL查詢返回'1',如果具體值大於0.
我當前的解決方案是將2個選擇(使用UNION SELECT)與不同的WHERE子句結合起來並返回'1 '或'0'作爲靜態值。現在我正在尋找一種解決方案,只在一個SELECT語句中「翻譯」這個值。
這是我目前的解決方案:
SELECT
dbo.Nachricht.NachrichtID, dbo.Nachricht.Bezeichnung, '1' AS BetrifftKontoeinrichtung,
FROM dbo.Nachricht INNER JOIN dbo.AdditionalData
ON dbo.Nachricht.NachrichtID = dbo.AdditionalData.NachrichtID
WHERE (dbo.Nachricht.NachrichtID in (450,439))
AND dbo.AdditionalData.BetrifftKontoeinrichtung > 0
UNION SELECT
dbo.Nachricht.NachrichtID, dbo.Nachricht.Bezeichnung, '0' AS BetrifftKontoeinrichtung,
FROM dbo.Nachricht INNER JOIN dbo.AdditionalData
ON dbo.Nachricht.NachrichtID = dbo.AdditionalData.NachrichtID
WHERE (dbo.Nachricht.NachrichtID in (450,439))
AND dbo.AdditionalData.BetrifftKontoeinrichtung = 0
喜歡這個答案,謝謝! – 2012-09-14 14:03:07