Выбрать несколько статических значений

Как мы можем написать в SQL для возврата одного статического значения

select "Jan" as StartMonth

Аналогичным образом SQL должен позволять писать, чтобы возвращать несколько значений в одном столбце

select {"Jan", "Feb", "Mar"} as Qtr1, {"Apr", "May", "Jun"} as Qtr2

Когда нам нужны данные как таблица для выполнения соединения, а данные неизвестны на уровне Sp, т.е. они исходят из параметра, возникают ненужные задачи для создания временной таблицы и вставки разделенных значений в таблице temp. Исправьте меня, если такая функция существует на сервере MS SQL. Или лучший способ иметь его, кроме таблицы поворота и темпа.

Ответ 1

Это даст вам то, что вы хотите?

SELECT 'Jan' AS Qtr1, 'Apr' AS Qtr2
UNION ALL SELECT 'Feb' AS Qtr1, 'May' AS Qtr2
UNION ALL SELECT 'Mar' AS Qtr1, 'Jun' AS Qtr2

Ответ 2

Я знаю, что этот вопрос отмечен , но он был одним из лучших результатов Google, когда я искал ответ Postgres, поэтому здесь для Postgres:

Это:

VALUES ('Jan', 'Apr'), ('Feb', 'May'), ('Mar', 'Jun');

Это эквивалентно этому:

SELECT 'Jan' AS column1, 'Apr' AS column2
UNION ALL SELECT 'Feb', 'May'
UNION ALL SELECT 'Mar', 'Jun'

Ответ 3

Это невозможно, если вы не используете временную таблицу, как вы уже сказали.

Ответ 4

По состоянию на SQL Server 2008 вы можете использовать Табличные значения параметров, посредством которых вы можете передать ТАБЛИЦУ данных, чтобы затем использовать/присоединяться по своему желанию внутри sproc вместо того, чтобы проходить в CSV-строку, которая вам понадобится раскол.

Ознакомьтесь с этой статьей MSDN: