-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path5_EstructurasDeControl.sql
125 lines (99 loc) · 2.75 KB
/
5_EstructurasDeControl.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
-- Subconsultas, cuando hacemos subconsultas debemos asignarle un alias a cada tabla para que la consulta se realice correctamente y no haya confusion al momento de buscar los datos.
SELECT apellido, nombre, idPais,
(SELECT pais FROM Pais as ps WHERE pa.idPais=ps.idPais)
FROM Paciente as pa WHERE idPaciente = 10;
-- Estructuras de Control
-- IF
-- declaramos una variable
DECLARE @idPaciente int
set @idPaciente = 12
IF @idPaciente = 12
SELECT * FROM Paciente WHERE idPaciente = @idPaciente;
DECLARE @idPaciente2 INT
DECLARE @idTurno INT
SET @idPaciente2 = 10
SET @idTurno = 4
IF @idTurno = 4
SELECT idPaciente, nombre, apellido, dni FROM Paciente WHERE idPaciente = @idPaciente2
PRINT @idTurno;
DECLARE @idPaciente3 INT
DECLARE @idTurno2 INT
SET @idPaciente3 = 11
IF @idPaciente3 = 111
BEGIN
SET @idTurno2 = 2
SELECT idPaciente, nombre, apellido, dni FROM Paciente WHERE idPaciente = @idPaciente3
PRINT @idTurno2;
END
ELSE
BEGIN
PRINT 'La condicion no se cumple'
END
select * from Turno
-- EXISTS (al usarla con un condicional la funcion EXISTS nos va a permitir evaluarsi existe un grupo de registros de determinada consulta)
IF EXISTS
(SELECT * FROM Paciente WHERE idPaciente = 12)
BEGIN
SELECT 'Existe'
END
ELSE
BEGIN
SELECT 'No existe'
END;
SELECT * FROM Paciente
-- ESTRUCTURA WHILE (ejecuta un codigo hasta que cierta condición se cumpla)
DECLARE @contador INT = 0
WHILE @contador <= 10
BEGIN
print @contador
SET @contador = @contador + 1
END
-- CASE -- Se puede utilizar por ejemplo en un select
DECLARE @valor INT
DECLARE @resultado CHAR (10) = ''
SET @valor = 30
SET @resultado = (CASE WHEN @valor = 10 THEN 'DIEZ'
WHEN @valor = 20 THEN 'VEINTE'
WHEN @valor = 30 THEN 'TREINTA'
WHEN @valor = 40 THEN 'CUARENTA'
END )
PRINT @resultado
-- Ejemplo con SELECT
SELECT *,
(CASE
WHEN estado = 1 THEN 'Rojo'
WHEN estado = 2 THEN 'Verde'
WHEN estado = 3 THEN 'Azul'
WHEN estado = 6 THEN 'Amarillo'
ELSE 'GRIS'
END) AS ColoreTurno
FROM Turno;
-- RETURN (sale forzosamente del script)
DECLARE @contador2 INT = 0
WHILE @contador2 < 5
BEGIN
PRINT @contador2
SET @contador2 = @contador2 + 1
IF @contador2 = 3
RETURN
PRINT 'Hola'
END
PRINT 'Hola no ejecuto'
-- BREAK
DECLARE @contador3 INT = 0
WHILE @contador3 < 5
BEGIN
PRINT @contador3
SET @contador3 = @contador3+ 1
IF @contador3 = 3
BREAK
END
PRINT 'Hola siguo ejecutando'
-- TRY CACH (Manejo de errores en tiempo de ejecución)
DECLARE @variable INT
BEGIN TRY
SET @variable = 'Texto'
END TRY
BEGIN CATCH
print 'No podemos asignar un texto a la variable contador por ser INT'
END CATCH