我不认为这JSON格式在FOR JSON
条款的支持,看到this article,虽然串["John","Mary","Dick"]
使用ISJSON功能被认为是有效的JSON。
你唯一的办法很可能是自己修改的输出是这样的:
SET NOCOUNT ON
DECLARE @MyCategory TABLE (ID int , Category char(1), [Name] varchar(50))
INSERT INTO @MyCategory VALUES (1, 'A', 'John')
INSERT INTO @MyCategory VALUES (2, 'A', 'Mary')
INSERT INTO @MyCategory VALUES (3, 'A', 'Dick')
INSERT INTO @MyCategory VALUES (4, 'B', 'Sam')
DECLARE @MyJSON varchar(max)
SELECT @MyJSON =
REPLACE(
REPLACE(
(
SELECT [Name] AS ReplaceMe
FROM @MyCategory
WHERE [Category] = 'A'
FOR JSON AUTO
), '{"ReplaceMe":',''
) , '}','')
PRINT @MyJSON
PRINT ISJSON(@MyJSON)
输出到:
["John","Mary","Dick"]
1
看Magne Rekdal的答案在这里:https://stackoverflow.com/questions/37708638/sql-to-json-array-of-object s-to-array-of-values-in-sql-2016 – Santiago