问题: 数据库列表包含三态(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