Ответ 1
SELECT *,
CASE WHEN Password IS NOT NULL
THEN 'Yes'
ELSE 'No'
END AS PasswordPresent
FROM myTable
Я использую базу данных SQLite. В моей таблице есть текстовый столбец "Пароль". Раньше для получения значений, которые я использовал для выполнения простого запроса "select * from myTable". Но теперь требование состоит в том, что если значение пароля не равно NULL, тогда мне нужно показать его как "да" или иначе "нет". Это что-то вроде: -
select * from myTable
if Password != NULL then Password = 'Yes'
else Password = 'No'
Я много искал об этом, но у меня не было никакой правильной ссылки или примера. Любая помощь или предложение будут действительно оценены.
-sattu
SELECT *,
CASE WHEN Password IS NOT NULL
THEN 'Yes'
ELSE 'No'
END AS PasswordPresent
FROM myTable
SQLite использует синтаксис CASE WHEN THEN END. Вы можете узнать больше об этом здесь: http://www.sqlite.org/lang_expr.html
Я не проверял синтаксис, но я предполагаю что-то вроде этого:
select *
from myTable CASE WHEN Password != NULL THEN Password = 'Yes' ELSE Password = 'No' END;
Хотя я не уверен, что это сработает. Если вы пытаетесь получить ДА или НЕТ в зависимости от наличия пароля в таблице для каждой записи, возможно, это ближе к тому, что вы хотите:
SELECT Field1,
Field2,
(CASE WHEN Password != NULL THEN
'Yes'
ELSE
'No'
END) as 'Password'
FROM myTable;
Опять же, у меня сейчас нет доступа к SQLite, чтобы проверить это самостоятельно, поэтому он, вероятно, нуждается в некоторой работе.