У меня есть SQL-запрос, связывающий таблицу 1 с таблицей 2 через внутреннее соединение, содержащий эту часть в части выбора select:
select
table1.field1,
table2.field1,
CASE (table2.field1)
WHEN -2 THEN ''
ELSE table2.field2
END as table2Field2,
table3.field4
from...
Я хочу иметь возможность вернуть table2Field2, когда онаимеет соответствующее значение, т. е. когда объект, представленный в таблице 2, не равен нулю, так что table2.field1 не имеет значения -2. В этом случае значение table2Field2 должно быть пустым, а не бессмысленным значением.
Однако вместо пустого текста возвращается 0. Если я изменю эту строку:
WHEN -2 THEN ''
на эту:
WHEN -2 THEN 'someText'
, то мне будет жаловаться, что она пытается преобразовать int в строку, а я нет. table2field1 - это целое число, но table2Field2 - это строка, которую мы на самом деле возвращаем здесь.
Как я могу указать (даже более конкретно) в этом запросе, что я возвращаю строковое поле в виде строки, а не что-то еще как строка, которая не является (а) строкой и (б) тем, что я указал, я возвращаю, пожалуйста?
Все предложения приветствуются, большое спасибо заранее за любую помощь:)