У вас две проблемы.
Строки SQL обычно заключаются в '
, а не "
. (MS Access является примером, где используется "
, но стандарт SQL равен '
, в том числе для SQL Server)
Это дает тебе это ...
SELECT
OrderItem_ID,Cost,
Case
When Cost = 0 then 'Free'
Else Cost
End As CostStatus
FROM
OrderItem
Но затем вы пытаетесь поместить строку ('free'
) в тот же столбец, что и набор чисел: costStatus
.
Вы хотите, чтобы этот столбец был строковым или числовым? Это не может быть одновременно ...
Может быть, у вас должно быть два столбца? У вас уже есть столбец cost
сам по себе, так что может быть просто 'free'
и 'not free'
в качестве двух возможных значений состояния?
SELECT
OrderItem_ID,
Cost,
Case
When Cost = 0 then 'Free'
Else 'Not Free'
End As CostStatus
FROM
OrderItem
Если вы просто можете заменить 0.00
в отчете словом free
, вам не следует делать это в SQL. Вы должны сделать это в отчете (или любом другом уровне представления) .