У меня есть таблица в базе данных SQL-сервера, и в ней есть поле типа nvarchar. Он сохраняет значения в формате, как показано ниже:
ROW 1 - ["value1", "value2", "value3"]
ROW 2 - ["value4","value5"]
ROW 3 - ["value2", "value1"]
ROW 4 - ["value3", "value6", "value7"]
Мне нужно выбрать все уникальные значения отсюда. Поэтому мне нужно получить следующие значения в результате.
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);