Поддерживает ли sqlite какой-либо оператор IF (условие) в select

58

Поддерживает ли sqlite функцию sql "if" в инструкции select?

например

select if( length( a ) > 4 , a , ' ') as b
from foo

который вернет a, если длина была более 4 символов. или иначе он вернется '' как b

Если он поддерживает условие в выборе того, что должен использовать синтаксис?

Я проверил http://sqlite.org/lang_corefunc.html, но я не вижу его.

Теги:
sqlite3

2 ответа

90
Лучший ответ

См. выражение case.

Выражение CASE выполняет роль, аналогичную IF-THEN-ELSE, на других языках программирования.

Для вашего примера

select case when length(a) > 4 then a else '' end as b
from foo
  • 0
    Это то, что мне нужно.
14

Вы можете использовать case для этого:

select case when length(a)>4 then a else ' ' end from foo;
  • 0
    Странный; ссылка не работает для iceweasel. Это приведет к ошибке «Документ не найден» (/lang_5Fexpr.html). Однако адрес в адресной строке будет правильным (... / lang_expr.html). Не уверен, почему это так. Хотя адрес правильный, обновление не будет работать; чтобы попасть на страницу, нажмите Enter в адресной строке.
  • 0
    уценка не любит подчеркивания, я думаю. Я изменил ссылку, чтобы использовать перенаправитель snurl
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню