2016-10-11 2 views
0

Почему мой оператор switch возвращает 0 для всех согласованных значений вместо значения «switch»? Если он не соответствует значению, он возвращает пустое значение, которое является правильным.Выписка переключателя 0

Вот мой синтаксис, который выглядит действительно до моего новичка глаза

SELECT [ICC]=Switch([ICC]="UV1","RP1",[ICC]="UV2","RP2",[ICC]="UV3","RP3") AS Expr1 
FROM UVMaster; 
+0

Вы пытаетесь изменить значение '[ICC]' на значение, возвращаемое коммутатором? –

+0

@EdPlunkett да, если ICC = UV1, тогда отобразите RP1, если ICC = UV2, тогда покажите RP2, если ICC = UV3, тогда отобразите RP3 – BellHopByDayAmetuerCoderByNigh

+0

. Вам нужно обновление, чтобы изменить значение в таблице. Select будет просто интерпретировать это '=' как сравнение, и я думаю, что он возвращает '0' для« false », потому что новое значение не соответствует старому. –

ответ

0

Удалите [ICC] = в начале вашего коммутатора Постулаты. Он должен выглядеть следующим образом. Не могу ответить, почему он возвращает нуль, но это должно исправить.

SELECT Switch([ICC]="UV1","RP1",[ICC]="UV2","RP2",[ICC]="UV3","RP3") AS Expr1 
FROM UVMaster; 
+0

Это получилось! Скоро принять в качестве ответа. Спасибо! – BellHopByDayAmetuerCoderByNigh

+0

Теперь я понимаю, что я сделал, мне нужен оператор обновления, но он тестировал с помощью Select сначала, чтобы обеспечить правильный синтаксис. Таким образом, мое обновление действительно прочитало Update UVMaster Set ICC = switch ...., в то время как оператор Select только считывает переключатель Select ... – BellHopByDayAmetuerCoderByNigh

+0

Делает смысл, просто перемешивает. Сделайте мне одолжение и отметьте ответ, когда он станет доступным. И никаких проблем! –

Смежные вопросы