从 SQL 服务器中的 nvarchar 数据类型获取唯一值
Get unique values from nvarchar datatype in SQL Server
我在 SQL 服务器数据库中有一个 table,它有一个类型为 nvarchar
的字段。它以如下所示的格式存储值:
ROW 1 - ["value1", "value2", "value3"]
ROW 2 - ["value4","value5"]
ROW 3 - ["value2", "value1"]
ROW 4 - ["value3", "value6", "value7"]
我需要从这里获取 select 所有唯一值。所以我需要在结果中得到以下值。
Result
------
value1
value2
value3
value4
value5
value6
value7
我尝试使用 DISTINCT 查询,但失败了。我是 SQL 服务器的新手,如果有人能在这里帮助我,那将非常有帮助。谢谢
这些值是有效的 JSON 数组,因此您应该能够使用 OPENJSON 来提取值:
SELECT value
FROM MyTable
CROSS APPLY OPENJSON(MyCol);
示例:
DECLARE @MyTable TABLE (MyCol NVARCHAR(MAX));
INSERT @MyTable (MyCol)
VALUES(N'["value1", "value2", "value3"]'),
(N'["value4","value5"]'),
(N'["value2", "value1"]'),
(N'["value3", "value6", "value7"]');
SELECT value
FROM @MyTable
CROSS APPLY OPENJSON(MyCol);
我在 SQL 服务器数据库中有一个 table,它有一个类型为 nvarchar
的字段。它以如下所示的格式存储值:
ROW 1 - ["value1", "value2", "value3"]
ROW 2 - ["value4","value5"]
ROW 3 - ["value2", "value1"]
ROW 4 - ["value3", "value6", "value7"]
我需要从这里获取 select 所有唯一值。所以我需要在结果中得到以下值。
Result
------
value1
value2
value3
value4
value5
value6
value7
我尝试使用 DISTINCT 查询,但失败了。我是 SQL 服务器的新手,如果有人能在这里帮助我,那将非常有帮助。谢谢
这些值是有效的 JSON 数组,因此您应该能够使用 OPENJSON 来提取值:
SELECT value
FROM MyTable
CROSS APPLY OPENJSON(MyCol);
示例:
DECLARE @MyTable TABLE (MyCol NVARCHAR(MAX));
INSERT @MyTable (MyCol)
VALUES(N'["value1", "value2", "value3"]'),
(N'["value4","value5"]'),
(N'["value2", "value1"]'),
(N'["value3", "value6", "value7"]');
SELECT value
FROM @MyTable
CROSS APPLY OPENJSON(MyCol);