我不認爲這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