Las expresiones a nivel de fila evalúan un resultado devuelto por la consulta y dependiendo de los valores que utilicemos lo sustituyen para mejorar la presentación de los datos.
CASE expresion WHEN valor1 THEN resultado1 ELSE resultadoN END CASE WHEN verdadero THEN resultado1 ELSE resultado2 END
--CASE DECLARE @N INT SET @N = 1 WHILE (@N<100) BEGIN SELECT @N AS 'NUMERO', CASE WHEN (@N % 2) = 1 THEN 'IMPAR' ELSE 'PAR' END AS 'TIPO' SET @N = @N + 1 END
EJEMPLO:
Esto se puede utilizar también para inicializar variables. Es el mismo caso pero utilizando el CASE para inicializar una variable.
DECLARE @N INT,@TIPO CHAR(10),@VALOR CHAR(11) SET @N = 1 WHILE (@N < 100) BEGIN IF (@N < 50) SET @VALOR = 'MENOR DE 50' ELSE SET @VALOR = 'MAYOR DE 50' SET @TIPO = CASE (@N % 2) WHEN 1 THEN 'IMPAR' ELSE 'PAR' END SELECT @N AS 'NUMERO', @TIPO AS 'TIPO',@VALOR AS VALOR SET @N = @N + 1 END
CONVERT se usa para convertir el numero a una cadena de dos caracteres y lo concatenamos con @tipo.
CAST realiza lo mismo que CONVERT
DECLARE @N INT,@TIPO CHAR(10) SET @N = 5 IF (@N BETWEEN 4 AND 6) BEGIN WHILE (@N > 0) BEGIN SET @TIPO = CASE (@N % 2) WHEN 1 THEN 'IMPAR' ELSE 'PAR' END SELECT @N AS 'NUMERO', @TIPO AS 'TIPO' PRINT CONVERT (CHAR(2),@N) + @TIPO PRINT CAST (@N AS CHAR(2)) + @TIPO SET @N = @N - 1 END END
Espero haber ayudado en algo. Hasta la próxima oportunidad!
Twittear
No hay comentarios:
Publicar un comentario