Скажем, у меня есть столбцы is_return_foo
, is_return_bar
и is_return_baz
.
Мне нужно вернуть столбцы foo, bar, baz, если для любого из вышеперечисленных соответственно установлено значение true ...
Является ли CASE WHEN
лучшим вариантом?
Что-то вроде:
SELECT
CASE is_return_foo WHEN true THEN foo ELSE null
CASE is_return_bar WHEN true THEN bar ELSE null
CASE is_return_baz WHEN true THEN baz ELSE null
another_column
FROM
my_table
Обновление
В основном я хочу вернуть столбцына основе флагов включения / выключения.Таким образом, если флаг A включен, то вернуть значение столбца A, если флаг B включен, тогда вернуть значение столбца B.
Возможно, мы могли бы сказать, основываясь на разрешениях, но более детально.
Так сказатьу вас есть электронное сообщение с телом, заголовками, телами, временем чтения, чтением и временем чтения.
Таким образом, обычный пользователь будет видеть только тело, от имени, а премиум-клиент может быть настроен также на чтение заголовков, чтение ивремя чтения.
Но я бы хотел делать ot для каждого столбца вместо группы столбцов.
Если бы это была группа столбцов, то мы могли бы легко сказать СЛУЧАЙ, КОГДА ЗАДНЕГО ТОГО, ЧЕМ заголовки, читать, читатьвремя.
Обновление 2
Я думаю, что мы можем делать «разрешения» на основе групп, поэтому если вы являетесь серебряным участником, вы видите только некоторые поля, но если вы являетесь золотымчлен вы видите все поля.