Aracılığıyla paylaş


JSON_ARRAY (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft FabricAmbarı'nda SQL analiz uç noktası

Sıfır veya daha fazla ifadeden JSON dizi metni oluşturur.

Sözdizimi

JSON_ARRAY ( [ <json_array_value> [ , ...n ] ] [ <json_null_clause> ] [ RETURNING json ] )

<json_array_value> ::= value_expression

<json_null_clause> ::=
      NULL ON NULL
    | ABSENT ON NULL

Bağımsız değişken

json_array_value

JSON dizisindeki öğesinin değerini tanımlayan ifade.

json_null_clause

JSON_OBJECT value_expressionolduğunda NULL işlevinin davranışını denetlemek için kullanılabilir. NULL ON NULL seçeneği, JSON dizisindeki öğesinin değerini oluştururken SQL NULL değerini JSON NULL değerine dönüştürür. değer ABSENT ON NULLise NULL seçeneği JSON dizisindeki öğesini atlar. Bu seçeneğin varsayılan ayarı ABSENT ON NULL.

Dönüş değeri

nvarchar(max) türünde geçerli bir JSON dizi dizesi döndürür. RETURNING json Seçenek dahil edilirse JSON dizisi json türü olarak döndürülür.

JSON_ARRAY işlevinin çıkışında gördükleriniz hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Article Description
FOR JSON, SQL Server veri türlerini JSON veri türlerine nasıl dönüştürür JSON_ARRAY işlevi, SQL veri türlerini JSON dizi çıkışındaki JSON türlerine dönüştürmek için bu FOR JSON makalede açıklanan kuralları kullanır.
FOR JSON özel karakterlerden ve denetim karakterlerinden nasıl kaçınıyor? JSON_ARRAY işlevi özel karakterlerden kaçar ve bu FOR JSON makalede açıklandığı gibi JSON çıkışındaki denetim karakterlerini temsil eder.

Örnekler

Örnek 1

Aşağıdaki örnek boş bir JSON dizisi döndürür.

SELECT JSON_ARRAY();

Sonuç

[]

Örnek 2

Aşağıdaki örnek, dört öğe içeren bir JSON dizisi döndürür.

SELECT JSON_ARRAY('a', 1, 'b', 2);

Sonuç

["a",1,"b",2]

Örnek 3

Aşağıdaki örnek, giriş değerlerinden biri NULLolduğundan üç öğe içeren bir JSON dizisi döndürür. json_null_clause atlandığından ve bu seçenek için varsayılan değer olduğundanABSENT ON NULLNULL, girişlerden birindeki değer JSON null değerine dönüştürülemez.

SELECT JSON_ARRAY('a', 1, 'b', NULL);

Sonuç

["a",1,"b"]

Örnek 4

Aşağıdaki örnek, dört öğe içeren bir JSON dizisi döndürür. girişteki tüm SQL NULL ON NULL değerlerinin JSON dizisindeki JSON null değerine dönüştürülmesi için NULL seçeneği belirtilir.

SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL);

Sonuç

["a",1,null,2]

Örnek 5

Aşağıdaki örnek, iki öğe içeren bir JSON dizisi döndürür. Bir öğe bir JSON dizesi, başka bir öğe de bir JSON nesnesi içerir.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1));

Sonuç

["a",{"name":"value","type":1}]

Örnek 6

Aşağıdaki örnek, üç öğe içeren bir JSON dizisi döndürür. Bir öğe bir JSON dizesi, başka bir öğe bir JSON nesnesi ve başka bir öğe bir JSON dizisi içerir.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, NULL, 2 NULL ON NULL));

Sonuç

["a",{"name":"value","type":1},[1,null,2]]

Örnek 7

Aşağıdaki örnek, değişkenler veya SQL ifadeleri olarak belirtilen girişleri içeren bir JSON dizisi döndürür.

DECLARE @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));

Sonuç

[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]

Örnek 8

Aşağıdaki örnek, sorgudaki satır başına bir JSON dizisi döndürür.

SELECT s.session_id,
       JSON_ARRAY(s.host_name, s.program_name, s.client_interface_name)
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;

Sonuç

session_id Bilgi
52 ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"]
55 ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"]
56 ["WIN19-VM","SQLServerCEIP",".Net SqlClient Data Provider"]

Örnek 9

Aşağıdaki örnek json türü olarak bir JSON dizisi döndürür.

SELECT JSON_ARRAY(1 RETURNING JSON);

Sonuç

[1]
  • SQL Server'da JSON verilerini