-
Notifications
You must be signed in to change notification settings - Fork 0
/
Json.sql
96 lines (84 loc) · 2.13 KB
/
Json.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
use Nombres
--http://codebeautify.org/jsonviewer
--
-- JSON (generate JSON)
--
--SELECT *
--FROM NombresAragoneses
----FOR JSON AUTO
--FOR JSON PATH, ROOT('Nombres')
--
-- JSON
--
--DECLARE @Json AS nvarchar(max)
--SET @Json = N'{
-- "Serie": {
-- "Titulo": "Halt and Catch Fire",
-- "Fecha": "2014-06-25",
-- "Budget": 1350000.3
-- },
-- "Temporadas": [
-- {
-- "Numero": 1,
-- "Episodios": 12,
-- "Valoracion": 8.2
-- },
-- {
-- "Numero": 2,
-- "Episodios": 15,
-- "Valoracion": 9.2
-- }
-- ]
--}'
--
-- IS JSON
--
--IF ISJSON(@Json) = 1
-- SELECT 'JSON cremoso delicioso !!!'
--ELSE
-- SELECT 'JSON más malo que Darth Vader !!!'
--
-- JSON_QUERY, JSON_VALUE
--
--SELECT
-- JSON_QUERY(@Json, '$.Serie') As SerieDatos
-- , JSON_VALUE(@Json, '$.Serie.Titulo') As Titulo
-- , JSON_VALUE(@Json, '$.Serie.Fecha') As Fecha
-- , JSON_VALUE(@Json, '$.Temporadas[0].Episodios') As EpisodiosPrimerTemporada
-- , JSON_VALUE(@Json, '$.Temporadas[1].Episodios') As EpisodiosSecundaTemporada
--
-- OPENJSON
--
--SELECT *
-- FROM
-- OPENJSON (@Json, N'$.Serie')
-- WITH (
-- Titulo nvarchar(400) N'$.Titulo'
-- ,Fecha Date N'$.Fecha'
-- ,Budget Decimal(18,3) N'$.Budget'
-- )
--CROSS APPLY
-- OPENJSON (@Json, N'$.Temporadas')
-- WITH (
-- Episodios nvarchar(400) N'$.Episodios'
-- ,Valoracion Decimal(3,2) N'$.Valoracion'
-- ) AS Temporadas
--
-- JSON_MODIFY
--
--SELECT JSON_VALUE(@Json, '$.Temporadas[0].Episodios') as EpisodiosTemporadaUno
--SET @Json = JSON_MODIFY(@Json, '$.Temporadas[0].Episodios', '111')
--SELECT JSON_VALUE(@Json, '$.Temporadas[0].Episodios') as EpisodiosTemporadaUno
--SELECT JSON_QUERY(@Json, '$.Temporadas[0]') as TemporadaUno
--
-- OPENJSON dentro de una tabla
--
--SELECT * FROM NombresPorInicial
--SELECT NombresPorInicial.Genero, NombresPorInicial.EmpiezaPor, DetJson.Es, DetJson.Ar
--FROM NombresPorInicial
--CROSS APPLY
-- OPENJSON (NombresPorInicial.NombresJosn, N'$.Nombres')
-- WITH (
-- Es nvarchar(400) N'$.NombreEs'
-- ,Ar nvarchar(400) N'$.NombreAr'
-- ) AS DetJson