Tipos De Datos TRANSACT SQL Tipo de Dato Descripción Numéricos aproximados: float Punto flotante, desde -1.79 E 308 a 1.79 E 308 real Punto flotante, desde 3.40 E 38 a 3.40 E 38 Int entero entre (2 31 ) y 2 31 (-1) Caracteres: Char varchar Text longitud fija de hasta 8,000 caracteres longitud variable de hasta 8,000 caracteres longitud variable de hasta 2 31-1 caracteres (2,147,483,647)
Tipos De Datos TRANSACT SQL Tipo de Dato Descripción Binarios: binary data binaria de longitud fija de hasta 8,000 bytes varbinary data binaria de longitud variable de hasta 8,000 bytes Image longitud variable de hasta 2 31-1 bytes (2,147,483,647). Fecha y hora: datetime desde 01/01/1753 al 31/12/9999. Smalldatetime desde 01/01/1900 al 31/12/2079.
Uso de Funciones Funciones de Agregación Realizan cálculos sobre un grupo de valores, devolviendo un solo valor. Se pueden incluir en: La sentencia SELECT La cláusula COMPUTE o COMPUTE BY La cláusula HAVING Ejemplos: AVG, COUNT, MIN, MAX, SUM, STDEV, STDEVP, VAR, VARP.
Funciones de Agregación Procesan todos los valores seleccionados para una columna produciendo un único valor resultante (con excepción de COUNT(*)). Pueden aplicarse a todas las filas de una tabla, a las filas seleccionadas según la cláusula WHERE, o a uno o más grupos de filas. Las funciones de agregación generan un único valor para cada grupo. SELECT SUM(lgf_tothaber) FROM tb_biecgf Nos devolverá la suma de los valores de toda la columna lgf_tothaber de la tabla tb_biecgf
Funciones de Agregación Función de agregación Resultado SUM([ALL DISTINCT] expresión) Total de los valores en la expresión numérica AVG([ALL DISTINCT] expresión) Promedio de valores en la expresión numérica COUNT([ALL DISTINCT] expresión) Cantidad de valores en la expresión COUNT(*) Cantidad de filas seleccionadas MAX(expresión) El valor máximo en la expresión MIN(expresión) El valor mínimo en la expresión COUNT(*) es el único que NO ignora los valores nulos
Funciones de Agregación Cláusulas COMPUTE y COMPUTE BY Genera totales que se muestran al final de un grupo de filas resultantes. Cuando se emplea con BY genera subtotales por quiebre del valor del grupo Ejemplo: SELECT cgf_cnestado, cgf_porcentaje, cgf_moneda FROM tb_biecgf ORDER BY cgf_moneda COMPUTE SUM(cgf_porcentaje) BY cgf_moneda
Funciones de Agregación TRANSACT SQL cgf_cnestado cgf_porcentaje cgf_moneda Activo 90.0 4 sum -------------------- 90.0 Activo 80.0 5 Activo 80.0 5 Activo 80.0 5 sum -------------------- 240.0
Funciones de Agregación Cláusulas COMPUTE y COMPUTE BY SELECT expresión_a, expresión_b,..., expresión_n...... [ORDER BY expresión_n] COMPUTE { { AVG COUNT MAX MIN SUM } (expression_i) } [ BY expression_n ]
Uso de Funciones Funciones de Fecha y Hora Realizan operaciones sobre valores de fecha y hora, retornando un valor string, numérico o de fecha y hora. DATEADD DATEDIFF DATENAME DATEPART DAY GETDATE MONTH YEAR
Funciones de Fecha y Hora SQL Server reconoce los datos de fecha y hora encerrados entre apóstrofes, en los siguientes formatos: Formatos de fecha alfabéticos ( April 15, 2005 ) Formatos de fecha numéricos ( 4/15/2005, April 15, 2005 ) Cadenas de caracteres ( 20051207, December 12, 2005 )
Funciones de Fecha y Hora Elemento de fecha Datepart Abreviatura Valores Año year yy, yyyy 1753-9999 Trimestre quarter qq, q 1-4 Mes month mm, m 1-12 Día del año dayofyear dy, y 1-366 Día day dd, d 1-31 Semana del año week wk, ww 1-53 Día de la semana weekday dw 1-7 (dom-sab) Hora hour hh 1-23 Minuto minute mi, n 0-59 Segundo second ss, s 0-59
Funciones de Fecha y Hora DATEADD Devuelve un nuevo valor de tipo datetime agregando un intervalo a la fecha especificada. Donde Datepart numero fecha DATEADD(datepart, numero, fecha) es el parámetro que especifica en qué parte de la fecha se aplicará el nuevo valor. es el incremento es una expresión que devolverá el valor de tipo datetime, o un string en formato de fecha
Ejemplo: Funciones de Fecha y Hora DATEADD Sumar 21 días a la fecha de ingreso y mostrarlo con el encabezado Ingreso SELECT DATEADD(day, 21, cae_fecingreso) AS Ingreso FROM tb_admcae GO
Funciones de Fecha y Hora DATEDIFF Devuelve el período comprendido entre dos fechas específicas. Donde Datepart DATEDIFF(datepart, fechainicial, fechafinal) es el parámetro que especifica en qué parte de la fecha se aplicará la diferencia. fechainicial fecha inicial de la comparación fechafinal fecha final contra la cual se compara
Ejemplo: Funciones de Fecha y Hora DATEDIFF Determinar la diferencia en días entre la fecha actual y la fecha de ingreso (cae_fecingreso). SELECT DATEDIFF(day, cae_fecingreso, getdate()) AS cantidad_de_dias FROM tb_admcae GO
Funciones de Fecha y Hora DATENAME Devuelve una cadena de caracteres que representa la parte especificada de la fecha dada. Donde Datepart DATENAME(datepart, fecha) es el parámetro que especifica a qué parte de la fecha se aplicará la función.
Ejemplo: Funciones de Fecha y Hora DATENAME Extrae el nombre del mes desde la fecha del sistema (el valor de retorno de GETDATE). SELECT DATENAME(month, getdate()) AS Nombre_de_mes'
Funciones de Fecha y Hora DATEPART Devuelve un valor entero que representa la parte especificada de la fecha dada. DATEPART(datepart, fecha) La función GETDATE devuelve la fecha y hora del sistema SELECT GETDATE() AS Fecha_Actual' Devuelve 2005-03-06 13:05:13.877 SELECT DATEPART(month, GETDATE()) AS Mes' Devuelve 11
Funciones de Fecha y Hora DAY, YEAR, MONTH Devuelve un valor entero que representa la parte especificada de la fecha dada. DAY( fecha) YEAR(fecha) MONTH(fecha) SELECT DAY( 06/03/2005') AS Numero de Día' SELECT Numero de Año" = YEAR( 06/03/2005') SELECT Número de Mes" = MONTH( 06/03/2005')
Funciones de Cadenas de Caracteres Las comparaciones de cadena de caracteres no hacen distinción entre mayúsculas y minúsculas. Caracter comodín Significado _ Un único caracter cualquiera % Cero o más caracteres cualquiera ^ Negación [A-Z] Un rango de caracteres [A,B,C] Un carácter de la lista Para comprobar la existencia de los caracteres comodín, se deberá definir un caracter de escape
Funciones de Cadenas de Caracteres Recuperar una porción de una cadena: SUBSTRING(expresión, inicio, longitud) LEFT(expresión, valor entero) RIGHT(expresión, valor entero) LTRIM (expresión) elimina espacios a la izquierda RTRIM (expresión) elimina espacios a la derecha
Funciones de Cadenas de Caracteres Encontrar la posición inicial de una cadena dentro de una columna o expresión: CHARINDEX(expresión1, expresión2 [, posicion inicial]) expresión1 es la expresión a buscar expresión2 es la columna o expresión en la cual se busca posición inicial es la posición a partir de la cual se inicia la búsqueda.
Funciones de Cadenas de Caracteres Concatenar o combinar cadenas en una sola, empleando el operador de concatenación (+) expresión + expresión expresión es cualquier expresión de tipo carácter o binario, con excepción de los tipos text o image SELECT (bas_apepaterno + ', ' + bas_apematerno) AS Apellidos FROM tb_admcae
Funciones de Cadenas de Caracteres Insertar una cadena dentro de otra existente, sustituyendo una parte de ésta. STUFF(expresión de caracteres, inicio, longitud, expresión de caracteres) Este ejemplo devuelve una cadena resultado de eliminar tres caracteres de la primera cadena (abcdef) a partir de la posición 2 (desde b) e insertar la segunda cadena desde dicha posición SELECT STUFF('abcdef', 2, 3, 'ijklmn') Resultado: aijklmnef
Funciones de Cadenas de Caracteres Reemplazar todas las ocurrencias de una cadena dentro de otra existente, con una tercera cadena. REPLACE(cadena1, cadena2, cadena3) Este ejemplo reemplaza la cadena cde en abcdefgicde con la cadena xxx. SELECT REPLACE('abcdefghicde','cde','xxx') Resultado: abxxxfghixxx
Manejo de valores nulos Un valor nulo es un valor no disponible, sin signo, no conocido, inaplicable. No es lo mismo que cero ni blanco. Un valor nulo no puede ser igual a ningún otro valor, ni siquiera a otro nulo.
Manejo de Valores Nulos Algunas funciones relativas al manejo de nulos: NULLIF(expresión1, expresión2) Retorna un valor nulo si ambas expresiones son equivalentes. expresión IS [NOT] NULL Retorna un valor booleano TRUE o FALSE como resultado de evaluar la expresión. NOTA: Si se emplean los operadores de comparación = o!= el resultado será UNKNOWN
Manejo de Valores Nulos Para manipular los valores nulos se debe usar la función: ISNULL(expresión, valor de reemplazo) Donde Expresión es la expresión que se comprobará como nulo. Puede ser de cualquier tipo. Valor de reemplazo es el valor de retorno si la expresión es nula. Debe ser del mismo tipo que expresión.
Ejemplo: Manejo de Valores Nulos Encontrar el porcentaje adicional promedio de todos los judiciales activos, asumiendo el valor de 50% en los casos en que el campo Porcentaje sea null SELECT AVG(ISNULL(cgf_mtoadic, 50)) FROM tb_biecgf
Ejemplo: Manejo de Valores Nulos Mostrar el estado, el tipo de descuento y el porcentaje de todos los registros de la tabla tb_biecgf SELECT cgf_cnestado, cgf_moneda FROM tb_biecgf Cgf_cnestado Moneda 18 NULL 2 NULL 1 4
Ejemplo: Manejo de Valores Nulos Mostrar el estado, el tipo de descuento y el porcentaje de todos los registros de la tabla tb_biecgf. En los casos en que el porcentaje sea NULL, mostrar el valor 0.00 SELECT cgf_cnestado, ISNULL(cgf_moneda, 0.00) AS Moneda FROM tb_biecgf Cgf_cnestado 18 0 2 0 1 4 Moneda