Как я могу запросить список значений в столбце строк, используя SQLite? - PullRequest
2 голосов
/ 05 ноября 2011

Я хотел бы взять список имен (например, john, mary, paul) и создать запрос SQLite «select», который вернет этот список в столбце строк.На основе this было указано следующее:

"В соответствии со стандартом SQL92 выражение VALUES должно быть в состоянии стоять само по себе. Например, следующее должно возвращать один столбецтаблица с тремя строками: "

 VALUES 'john', 'mary', 'paul';

Теоретически набор результатов будет выглядеть следующим образом:

john
mary
paul

Но, как показывает страница, это неподдерживаемая функция в SQLite.Единственный способ выяснить, как это сделать - объединить несколько операторов выбора следующим образом:

SELECT 'john' AS name
UNION ALL SELECT 'mary' AS name
UNION ALL SELECT 'paul' AS name;

Это единственный способ сделать это в SQLite или есть более простой способ?

Ответы [ 2 ]

1 голос
/ 05 ноября 2011

Насколько я знаю, у вас уже есть лучшее составное предложение SELECT SQLite.Одна маленькая вещь: вам нужен псевдоним столбца только один раз.

SELECT 'john' AS name
UNION ALL SELECT 'mary' 
UNION ALL SELECT 'paul';
0 голосов
/ 03 мая 2017

Я нашел более выразительным для использования:

SELECT 'john' AS name UNION ALL VALUES ('mary'), ('paul')

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

Эта конструкция проще для чтения и имеет меньше ограничений, как указано вдокументация sqlite:

Фраза "VALUES (список expr)" означает то же самое, что и "SELECT expr-list".Фраза «VALUES (expr-list-1), ..., (expr-list-N)» означает то же самое, что и «SELECT expr-list-1 UNION ALL ... UNION ALL SELECT expr-list-N»,Обе формы одинаковы, за исключением того, что количество операторов SELECT в соединении ограничено SQLITE_LIMIT_COMPOUND_SELECT, тогда как количество строк в предложении VALUES не имеет произвольного ограничения.

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