Проблема:
Столбец базы данных имеет Tristate (0,1,2).
Каждое из значений используется на сервере.
Код клиента (который больше не может быть изменен) может понимать только «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