Есть ли способ создать JSON (Array of String) непосредственно из оператора Select в SQL? - PullRequest
0 голосов
/ 21 мая 2019

Я должен выполнить оператор SELECT для таблицы [Admin].[User].Эта таблица имеет столбец Username.

Я хочу получить все имена пользователей в одном операторе выбора в одной переменной varchar, которая может выглядеть следующим образом:

["some@gmail.com", "myself@yahoo.com", "none@outlook.com"]

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Если вы используете mysql, вы можете использовать функцию "JSON_ARRAY (column_name)" для получения значений JSON. Для получения дополнительной информации см. https://dev.mysql.com/doc/refman/5.7/en/json.html. Пример / образец

SELECT JSON_ARRAY(id, name) FROM division

Результирующий

JSON_ARRAY(id, name)
[1, "West Bengal"]
[2, "24 PARAGANAS SOUTH"]
[3, "Baruipur"]
[4, "BEGAMPUR G.P."]
[5, "HARAL (P)"]

Однако, если вам нужно получить объект, тогда ИСПОЛЬЗУЙТЕ JSON_OBJECT ('key1', column_name1, ...., 'keyn', coulmnn) Где ключ - это строка, а другой - имя поля из таблицы.

Надеюсь, это поможет.

Что касается вашего вопроса, где вам нужно только имя пользователя (а не JSON), вы можете использовать GROUP_CONCAT (ref: https://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html#function_group-concat), который будет просто разделять запятыми (запятую по умолчанию см. В документации к изменить разделитель) значения.

SELECT CONCAT( '["' , GROUP_CONCAT(Username SEPARATOR '", "') , '"]') FROM 
FROM tableName GROUP BY Username

Хотя пользователь не указал, для какой базы данных он ищет решения (изначально), позже он добавил «[]», таким образом предполагая, что он ссылается на SQLServer, если это так, пожалуйста, следуйте другому ответу @jiri.

0 голосов
/ 21 мая 2019

Поскольку похоже, что вы используете Microsoft SQL Server, вы должны сделать это, используя предложение SELECT ... FOR JSON.

Формат вывода, однако, несколько другой, ближе всего я могу найти ваш:

[{"username":"some@gmail.com"},{"username":"myself@yahoo.com"},{"username":"none@outlook.com"}]

Еще немного сопутствующей документации: https://docs.microsoft.com/en-us/sql/relational-databases/json/format-query-results-as-json-with-for-json-sql-server?view=sql-server-2017

SQL Fiddle: http://sqlfiddle.com/#!18/9eecb/44805

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