sql >> Database >  >> RDS >> Sqlserver

ISJSON() Voorbeelden in SQL Server (T-SQL)

Als u SQL Server gebruikt, kunt u de ISJSON() functie om te testen of een tekenreeksexpressie geldige JSON bevat.

Als de expressie geldige JSON bevat, ISJSON() retourneert 1 , anders retourneert het 0 .

Syntaxis

De syntaxis gaat als volgt:

ISJSON ( expression )

Waar expression is de tekenreeksexpressie waarvoor u test op geldige JSON.

Voorbeeld 1 – Geldige JSON

Hier is een voorbeeld om te demonstreren wat er gebeurt als de string geldige JSON bevat.

SELECT ISJSON('{"Name": "Bob"}') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Voorbeeld 2 – Ongeldige JSON

Hier is een voorbeeld om te laten zien wat er gebeurt als de string niet geldige JSON bevatten.

SELECT ISJSON('Name: Bob') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| 0        |
+----------+

Voorbeeld 3 – Een voorwaardelijke verklaring

Hier is een basisvoorwaardelijk statement dat een ander resultaat oplevert, afhankelijk van of de string JSON bevat of niet.

DECLARE @data nvarchar(255);
SET @data = '{"Name": "Bob"}';
IF (ISJSON(@data) > 0)
    SELECT 'Valid JSON' AS 'Result';
ELSE
    SELECT 'Invalid JSON' AS 'Result';

Resultaat:

+------------+
| Result     |
|------------|
| Valid JSON |
+------------+

Voorbeeld 4 – Een databasevoorbeeld

In deze databasequery worden de resultaten alleen geretourneerd waar de Collections.Contents kolom bevat geldige JSON.

Deze specifieke kolom gebruikt het gegevenstype nvarchar(4000) om het JSON-document op te slaan.

SELECT Contents
FROM Collections
WHERE ISJSON(Contents) > 0;

Resultaat:

+------------+
| Contents   |
|------------|
| [
    {
        "ArtistName": "AC/DC",
        "Albums": [
            {
                "AlbumName": "Powerage"
            }
        ]
    },
    {
        "ArtistName": "Devin Townsend",
        "Albums": [
            {
                "AlbumName": "Ziltoid the Omniscient"
            },
            {
                "AlbumName": "Casualties of Cool"
            },
            {
                "AlbumName": "Epicloud"
            }
        ]
    },
    {
        "ArtistName": "Iron Maiden",
        "Albums": [
            {
                "AlbumName": "Powerslave"
            },
            {
                "AlbumName": "Somewhere in Time"
            },
            {
                "AlbumName": "Piece of Mind"
            },
            {
                "AlbumName": "Killers"
            },
            {
                "AlbumName": "No Prayer for the Dying"
            }
        ]
    }
]            |
+------------+


  1. Datumbereiken vergelijken

  2. Hoe kan ik een kolom vullen met willekeurige getallen in SQL? Ik krijg dezelfde waarde in elke rij

  3. LOAD DATA INFILE equivalent in Oracle

  4. Verbindingstime-outs voor grote MySQL-imports voorkomen