Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Добрый люди помогите разобраться с json в TSQL  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Добрый день.

Делаю например такой запрос:
SELECT 
  [MEDX_Nomenclature].[Key],
  (
    SELECT
	  [SpecimenCode]
    FROM
      [MEDX_NomenclatureSpecimen]
   WHERE
	  [MEDX_NomenclatureSpecimen].[NomenclatureKey] = [MEDX_Nomenclature].[Key]
    FOR JSON PATH
  ) AS [Test]
FROM
  [MEDX_Nomenclature]
WHERE
  [Key] IN (560, 561, 562)


получаю такой ответ (пример одно из записей колонки "Test"):
[{"SpecimenCode":"258520000"},{"SpecimenCode":"258528007"},{"SpecimenCode":"122724004"},{"SpecimenCode":"472881004"}]

Вопрос, можно как то получить просто массив значений, чтоб было так:
["258520000","258528007","122724004","472881004"]
?

я подозреваю, что так уже не получиться (ну если применить фокусы с REPLACE, то можно... но как то криво)) )
15 мар 19, 15:56    [21834009]     Ответить | Цитировать Сообщить модератору
 Re: Добрый люди помогите разобраться с json в TSQL  [new]
Alex.C
Member

Откуда:
Сообщений: 31
Добрый день, попробуйте по такому принципу:
SELECT 
'[' +
STUFF(
	(
		SELECT 
			[text()] = ',"' + Item + '"'
		FROM
		(
			SELECT 'A' AS Item
			UNION ALL SELECT 'B' AS Item
			UNION ALL SELECT 'C' AS Item
		) AS Q
		FOR XML PATH('')
	),
	1,1,''
)
+ ']'
15 мар 19, 17:30    [21834130]     Ответить | Цитировать Сообщить модератору
 Re: Добрый люди помогите разобраться с json в TSQL  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Alex.C
Добрый день, попробуйте по такому принципу:
SELECT 
'[' +
STUFF(
	(
		SELECT 
			[text()] = ',"' + Item + '"'
		FROM
		(
			SELECT 'A' AS Item
			UNION ALL SELECT 'B' AS Item
			UNION ALL SELECT 'C' AS Item
		) AS Q
		FOR XML PATH('')
	),
	1,1,''
)
+ ']'


через "FOR XML" - можно и ещё проще... ясно, я так и думал, что "прямого" варианта попросту нет
15 мар 19, 17:39    [21834140]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить