Funciones MS SQL con ejemplos
Publicado el Jueves, 30 de agosto de 2007Aprovecho que estoy en clase de base de datos para publicar algunas funciones de bases de datos SQL, específicamente para MS SQL Server.
Son los apuntes de lo que va del semestre en Aplicaciones de bases de datos, pueden venir a mano como referencia, o para aprenderse alguna nueva. La mayoría tienen su respectivo ejemplo aplicado a la bd, aunque se entienden bastante bien fuera de contexto.
El script de la base de datos lo adjunto como enlace a continuación:
Base de datos (bd.sql) - 5,22 Kb
Mayúsculas y minúsculas:
Eliminar espacios:
Longitud de un valor en un campo:
Función sub string: args(string, inicio, longitud)
Función buscar índice de caracter: args(char, string[, a partir de cuál])
Función espacio:
Función convertir a string:
Declaración de variables:
Formato:
DECLARE @NombreVar tipo
SET @NombreVar = Valor
Ejemplo:
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 DATEADD(dd, 3, getdate())
DATEDIFF(partefecha, fecha1, fecha2)
Resta la parte de la fecha = fecha2 - fecha1
SELECT DATEDIFF(yy,FechaNac, getdate()) FROM Estudiantes
DATEPART([dd,mm,y, dw(día de la semana)], fecha)
SELECT DATENAME(mm, getdate())
SELECT DAY(getdate())
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:
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
IDENTIFICADOR UNICO:
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 @@rowcount AS Columnas
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:
ESTRUCTURA IF
BEGIN
-- SENTENCIAs
END
ELSE
BEGIN
-- SENTENCIAS
END
Ver mensajes del sistema:
Para usar la tabla master:
ó agregar la "ruta absoluta":
En la próxima clase, empiezo a ver vistas. Probablemente vaya publicando más apuntes más adelante.
9 comentarios en este post
Feed de comentarios-
programame.net |
31 agosto. 2007 - 12:45
Funciones MS SQL con ejemplos
Algunas funciones de bases de datos SQL, específicamente para MS SQL Server. Son los apuntes de lo que va del semestre en Aplicaciones de bases de datos, pueden venir a mano como referencia, o para aprenderse alguna nueva. La mayoría tienen su respec…
JORGE 12 septiembre. 2007 - 13:34
quisiera saber mas
fernando 12 septiembre. 2007 - 14:18
Gracias por visitar el blog. Voy a ir agregando más a medida que vaya avanzando en el curso. Espero que sirva.
Saludos
Miguel Carmona 15 octubre. 2008 - 11:31
…[Funciones para mssql (Microsft SQL Server) miguelcarmona.name]…
Cesar Lopez 25 mayo. 2011 - 13:41
Excelente aporte. Sere uno mas de sus seguidores sobre este tema, Mil gracias.
Te comento, el enlace del archivo adjunto no funciona.
Jorge Chaves 9 febrero. 2012 - 03:15
La experiencia desarrollando en MS sql server es lo mejor, en otros motores es muy engorrosa la sintaxis para declarar variables, las funciones que tienen encambio en MS Sql server es un amor jeje
DPS 5 marzo. 2012 - 00:44
Buenos aportes, me gustaría conocer más de sql server
daniel 10 julio. 2013 - 13:27
Tengo la siguiente función:
ALTER FUNCTION [dbo].[EstOferta_copy]
( @dato2 VARCHAR(50)
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @Dia VARCHAR(100) ;
DECLARE @Mes VARCHAR(100);
DECLARE @Fecha VARCHAR(50)
If @dato2 is NULL
SET @Fecha = ’00/00/00′;
ELSE
BEGIN
SET @fecha= Ltrim(Right(RTrim(@dato2), 2)) + ‘/’ + Left(LTrim(@dato2), 2) + ‘/’ + CONVERT(CHAR(4), Year(GETDATE()) );
END
If IsDate(@fecha)=1
BEGIN
SET @Fecha = ltrim(rtrim(Right(@dato2, 2))) + ‘/’ + Left(@dato2, 2) + ‘/’ + CONVERT(CHAR(4),Year(GETDATE()) );
END
ELSE
SET @Fecha = ’00/00/00′;
RETURN @Fecha
END
el valor de ingreso es : ’02:03′, cualdo lo evaluo para que me devuelva 03/02/2013 NO devuelve campo en Blanco es decir NADA.
¿Cual es mi problema?
Gracias
Josue 26 septiembre. 2017 - 16:30