Как я могу появиться или исчезнуть столбец в соответствии со значением столбца - PullRequest
0 голосов
/ 26 февраля 2011

Я использую MSSQL.Как я могу отобразить или скрыть столбец в соответствии со значением столбца?

Я подумал, используя оператор CASE, но это не так.

Пожалуйста, помогите.

1 Ответ

4 голосов
/ 26 февраля 2011

В пределах одного оператора select невозможно удалить столбец;количество и имя столбцов фиксируются предложением select.Однако вы можете перезаписать значение столбца в выводе, где вы обычно используете выражение case, nullif или coalesce.Например:

SELECT col1, col2, CASE WHEN col3 = x or col3 = y THEN null ELSE col3 END as col3
  FROM someTable

В этом случае col3 все еще будет в выводе, но его значение будет нулевым, если оно удовлетворяет определенным условиям, указанным в операторе case.

ЕслиВы действительно не хотите, чтобы столбец был там вообще, тогда вам нужно написать несколько операторов select и выбрать, какой из них выполнить.Например:

declare @checkValue int
select @checkValue = max(col3) from someTable
if (@checkValue = x or @checkValue = y)
    select col1, col2 from someTable
else
    select col2, col2, col3 from someTable

Это необычная конструкция.Действительно более распространено, чтобы столбец появлялся в выходных данных и просто перезаписывал его значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...