sql >> Database teknologi >  >> RDS >> SQLite

SQLite JSON_QUOTE()

I SQLite er json_quote() funktion konverterer et tal eller en streng til dens tilsvarende JSON-repræsentation.

Vi angiver tallet eller strengen som et argument, når vi kalder funktionen, og funktionen returnerer en JSON-repræsentation af denne værdi.

Syntaks

Syntaksen ser sådan ud:

json_quote(X)

Hvor X er et tal eller en streng.

Eksempler

Her er, hvad der sker, når vi sender en streng til funktionen:

SELECT json_quote('Super');

Resultat:

"Super"

Og her er et tal:

SELECT json_quote(10.45);

Resultat:

10.45

Her er en streng, der ligner en matrix:

SELECT json_quote('[10.45]');

Resultat:

"[10.45]"

Her er en streng, der ligner et objekt:

SELECT json_quote('{ "score" : 10.45 }');

Resultat:

"{ \"score\" : 10.45 }"

Men hvis vi sender argumentet i json() funktion, får vi dette:

SELECT json_quote(json('{ "score" : 10.45 }'));

Resultat:

{"score":10.45}

Nul-værdier

Sender null returnerer null :

SELECT json_quote( null );

Resultat:

null

Dette er faktisk SQL-tekstværdien null . Vi kan bekræfte dette ved at sende det til json_type() funktion:

SELECT json_type(json_quote( null ));

Resultat:

null

json_type() funktion returnerer SQL-tekstværditypen for dets argument. I dette tilfælde returnerede den null , som angiver, at json_quote() funktion returnerede null da vi bestod null til det.

Hvis vi har mistanke om, at vores SQLite CLI returnerer null på grund af en faktisk nulværdi, der returneres, kan vi gøre følgende for at udelukke det:

.nullvalue N/A

Det fortæller vores kommandolinjegrænseflade at returnere N/A hver gang en nulværdi returneres.

Efter at have kørt ovenstående kommando, lad os køre de tidligere udsagn igen, samt en operation, der faktisk resulterer i en null-værdi:

SELECT 
    json_quote( null ) AS json_quote,
    json_type(json_quote( null )) AS json_type,
    1 / 0 AS actual_null;

Resultat:

+------------+-----------+-------------+
| json_quote | json_type | actual_null |
+------------+-----------+-------------+
| null       | null      | N/A         |
+------------+-----------+-------------+

I SQLite resulterer dividering af et tal med nul i en nulværdi (mange andre DBMS'er giver en fejl i sådanne tilfælde). I dette eksempel havde jeg sat null-værdier for at returnere N/A , og så vi kan se, at der er en forskel mellem outputtet af de to funktioner og den faktiske nulværdi. Det vil sige, at den eneste nulværdi i ovenstående output er i den sidste kolonne.

Når alt det er sagt, kan en null-værdi stadig resultere i SQL-tekstværdien null returneres, når json_quote() kaldes . Måske illustrerer et eksempel dette bedre, end jeg kan forklare det:

SELECT 
    json_quote( 1 / 0 ),
    json_type(json_quote( 1 / 0 )),
    json_type( 1 / 0 ),
    1 / 0;

Resultat:

+---------------------+--------------------------------+--------------------+-------+
| json_quote( 1 / 0 ) | json_type(json_quote( 1 / 0 )) | json_type( 1 / 0 ) | 1 / 0 |
+---------------------+--------------------------------+--------------------+-------+
| null                | null                           | N/A                | N/A   |
+---------------------+--------------------------------+--------------------+-------+

Vi kan se, at de to første kolonner returnerer null SQL-tekstværdi, og de to andre kolonner returnerer en faktisk nulværdi.

Beståer Booleans

Her er et eksempel på videregivelse af booleaner såsom true og false :

SELECT 
    json_quote( true ) AS true,
    json_quote( false ) AS false;

Resultat:

+------+-------+
| true | false |
+------+-------+
| 1    | 0     |
+------+-------+

Ugyldigt antal argumenter

Kaldning af funktionen uden at sende et argument resulterer i en fejl:

SELECT json_quote();

Resultat:

Parse error: wrong number of arguments to function json_quote()
  SELECT json_quote();
         ^--- error here

Og at sende for mange argumenter resulterer også i en fejl:

SELECT json_quote( 1, 2 );

Resultat:

Parse error: wrong number of arguments to function json_quote()
  SELECT json_quote( 1, 2 );
         ^--- error here

  1. newid() inde i sql-serverfunktionen

  2. Mysql Forbedre søgeydelsen med jokertegn (%%)

  3. Bedste mulighed for at gemme brugernavn og adgangskode i Android-appen

  4. Simpel Slony-I-replikeringsopsætning.