Я хочу иметь выбор, который не будет иметь фиксированного количества столбцов. Колонка OptionalColumn
должны быть выбраны, только если переменная @check = 1Выберите определенный столбец, только если выполнено условие
Это то, что я имел (синтаксис плохо, но может быть, это объясняет, моя проблема)
SELECT
Column1, Column2,
(IF @Check = 1
BEGIN OptionalColumn END)
FROM table
Очень важно иметь это только если @Check = 1 и не иметь его, если @Check = 0. Это выполнимо?
Если вы действительно хотите исключить этот столбец (не только значение «NULL»), вы должны использовать хранимую процедуру или функцию с таблицей и «IF ... ELSE». –
Прошу прощения, но это ужасный дизайн. Если вы уверены, что это то, что вам нужно, решите его по-другому; имеют логику для определения того, что значение @ check1 есть, и на основе этого результата извлекают данные из 2 представлений; 1 с столбцом и 1 без столбца, и чтобы ваш front-end отображал или скрывал столбец таким образом. – SchmitzIT
SQL-запрос возвращает заданный набор столбцов. Для «SELECT» нет такой концепции, как «необязательные столбцы». Как говорит @TimSchmelter, вам нужно использовать динамический SQL или отдельные инструкции 'IF'. –