Funciones para mssql (Microsft SQL Server)
Enviado por miguelcarmona :: 15 de octubre de 2008
Aquí os dejo una serie de funciones/sentencias para Microsoft SQL Server (mssql)
Mayúsculas y minúsculas:
SELECT UPPER(Nombre), LOWER(Apellido) FROM estudiantes
Eliminar espacios:
SELECT LTRIM(' Aijuna!')
SELECT RTRIM('Nanuk ')
Longitud de un valor en un campo:
SELECT LEN(Nombre) FROM estudiantes
Función sub string: args(string, inicio, longitud)
SELECT SUBSTRING('Eoden',1,3)
Función buscar índice de caracter: args(char, string[, a partir de cuál])
SELECT CHARINDEX('n','Fernando', 5)
Función espacio:
– SET @valor = SPACE(9)
Función convertir a string:
STR(int)
Declaración de variables:
Formato:
DECLARE @NombreVar tipo
SET @NombreVar = Valor
Ejemplo:
DECLARE @Nombre char(8)
DECLARE @Apellido char(6)
DECLARE @valor char(50)
DECLARE @Edad smallint
SET @Edad = 41
SET @valor = 'Fernando Briano'
SET @Nombre = Substring(@valor, 1, (charindex(' ', @valor) - 1 ))
SET @Apellido = Substring(@valor, (charindex(' ', @valor) + 1), LEN(@valor))
SELECT @Nombre + ' ' + @Apellido + ' - edad: ' + CONVERT(char(3), @Edad) + ' años'
CONVERT:
CONVERT(Tipo, Campo o expresión, estilo)
El estilo en las FECHAS:
103 muestra: 23/05/1986
112 muestra: 19660523
114 muestra: hora
FUNCIONES CON FECHAS
DATEADD(partefecha (dd, mm, yy), número, fecha)
SELECT CONVERT(char(10), getdate(), 103)
SELECT DATEADD(dd, 3, getdate())
DATEDIFF(partefecha, fecha1, fecha2)
Resta la parte de la fecha = fecha2 - fecha1
SELECT DATEDIFF(yy, '19850707', getdate())
SELECT DATEDIFF(yy,FechaNac, getdate()) FROM Estudiantes
DATEPART([dd,mm,y, dw(día de la semana)], fecha)
SELECT DATEPART(yy, getdate())
SELECT DATENAME(mm, getdate())
SELECT DAY(getdate())
SELECT E.Nombre, DATEDIFF(yy, E.FechaNac, getdate()) AS Edad,
C.Descripcion , DATEDIFF(dd, FechaIngreso, getdate()) AS Antiguedad
FROM estudiantes AS E, estudiantes_curso AS EC, cursos AS C
WHERE EC.IdEstudiante = E.Ci
Redondear valores:
SELECT ROUND(479.90, -1)
ISDATE(campo)
Devuelve 1 si el campo contiene una fecha válida, sino devuelve 0
Valor nulo no es de tipo fecha
ISNUMERIC(campo)
Devuelve 1 si el campo contiene un valor numérico, sino devuelve 0
SELECT ISDATE(FechaIngreso) FROM estudiantes
IDENTIFICADOR UNICO:
DECLARE @Identificador UNIQUEIDENTIFIER
SET @Identificador = NEWID()
SELECT @Identificador
La función NEWID solamente funciona para columnas que hayan sido declaradas como UNIQUEIDENTIFIER
FUNCIONES DEL SISTEMA
Generalmente llevan “@@” adelante. Para encontrarlas, en la ayuda se puede buscar el string @@ que nos va a mostrar la mayoría de las que hay.
@@ROWCOUNT
Devuelve el número de filas afectadas por la última instrucción
Queda en cero cuando hubo error o no se realizó la instrucción.
SELECT * FROM estudiantes
SELECT @@rowcount AS Columnas
UPDATE estudiantes SET FechaEgreso = '07/07/2007' WHERE Nombre='Eustakio'
IF @@ROWCOUNT = 0 PRINT 'Santos Jalapeños enchilados Batman! No ha funcionado'
@@ERROR
Devuelve 0 si no hubo error, o distinto de cero con un código específico (véalo en el manual) con el error
@@IDENTITY
Muestra el último identity de la tabla. O sea, si por ejemplo hacemos una columna con valor int que va autoincrementando, y es identidad, al seleccionar éste valor, nos devuelve el último insertado.
Ver el usuario actual con el que se está logueado:
SELECT CURRENT_USER
ESTRUCTURA IF
IF
BEGIN
-- SENTENCIAs
END
ELSE
BEGIN
-- SENTENCIAS
END
Ver mensajes del sistema:
Para usar la tabla master:
USE master
ó agregar la “ruta absoluta”:
SELECT * FROM master.dbo.sysmessages
Fuentes: