【问题标题】:Sql Server - Format Query Result for an Integer datatyped Column of a table as ArraySql Server - 将表的整数数据类型列的查询结果格式化为数组
【发布时间】:2018-06-25 01:29:03
【问题描述】:

当我运行以下查询时,结果类似于下面屏幕截图中提供的结果。

DECLARE @numArray VARCHAR(50) = '[1,2,45,1,21,45,32,564,48,56,98,87]';

SELECT  value AS Number  FROM OPENJSON(@numArray)

我很好奇是否有可能以相反的方式进行。我的意思是,如果我有这样的查询:

Select Number from Table_name

那么它应该提供如下结果:[1,2,45,1,21,45,32,564,48,56,98,87]

我尝试使用For JSON,但它只会返回 JSON 数组。(不是 int 数组)

现在我知道还有其他方法可以做到这一点,我也做到了。但是有没有办法使用 Sql Server JSON 函数来做到这一点?

谢谢

编辑: 目前我正在使用东西来连接所有行。但我想知道是否有类似FOR JSON PATH 的东西可以这样做。

【问题讨论】:

标签: arrays json sql-server stringify sql-server-json


【解决方案1】:

此代码可能对您有所帮助,以下是示例数据

IF OBJECT_ID('tempdb..#SampleData') IS NOT NULL
DROP TABLE #SampleData
;WITH Cte( SapmleData )
AS
(
SELECT 1    UNION ALL
SELECT 2    UNION ALL
SELECT 45   UNION ALL
SELECT 1    UNION ALL
SELECT 21   UNION ALL
SELECT 45   UNION ALL
SELECT 32   UNION ALL
SELECT 564  UNION ALL
SELECT 48   UNION ALL
SELECT 56   UNION ALL
SELECT 98   UNION ALL
SELECT 87   
)
SELECT * INTO #SampleData FROM Cte

SELECT * FROM #SampleData

在 sql server 中使用 stuff()

SELECT '['+STUFF((SELECT DISTINCT ','+ CAST(SapmleData AS VARCHAR(10))   FROM #SampleData
FOR XML PATH ('')),1,1,'') +']' AS Expectedcolumn   

SapmleData
----------
1
2
45
1
21
45
32
564
48
56
98
87

Expectedcolumn
----------------
[1,2,21,32,45,48,56,564,87,98]

【讨论】:

  • 谢谢。目前我的做法和你一样。但是我想知道是否有类似于sql server的'for json auto'的东西来做。
  • 我认为您使用的是 sql 2016,但我不知道 json 对象,只是我知道 tha json 是在 2016 年合并的
【解决方案2】:

尝试使用 XML。像这样

;WITH CTE
AS
(
    SELECT
       Val = 1

    UNION ALL

    SELECT
       Val = Val+1
       FROM CTE
          WHERE Val < 10
)
SELECT
    List = '['+SUBSTRING(List,1,LEN(List)-1)+']'
    FROM 
    (
       SELECT
         CAST(Val AS VARCHAR(20))+',' as [text()]
       FROM CTE
       FOR XML PATH('')
    )L(List)

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多