miércoles, 18 de marzo de 2009

Native SQL Server Functions – T-SQL SQL Server 2005

Hace tiempo atrás tuve un problema con una función de T-SQL y nadie me podía ayudar, tal vez porque las conocen como PALABRAS RESERVADAS, PALABRAS CLAVEZ o lo correcto FUNCIONES... pero no, la verdad era que no nos sabemos las FUNCIONES de T-SQL tan bien como pensamos. Mencionare algunas funciones con algunos ejemplos

En si las Funciones son elementos de sintaxis que toma cero, uno o  más valores de entrada que van a devolver un valor escalar o un conjunto de tabla de valores. En SQL Server 2005, la funciones se clasifican en funciones deterministas y no deterministas.

Funciones deterministas siempre devuelven los mismos resultados para un conjunto específico de valores de entrada.

Funciones no determinista devuelven resultados diferentes cuando a que se les llama repetidamente con el mismo conjunto de valores de entrada. Funciones de SQL Server también pueden clasificarse según el tipo de insumos que acepta la función.

 

STRING FUNCTIONS

SUBSTRING: recupera una parte de la cadena de entrada.

USE AdventureWorks2008
GO
SELECT
SUBSTRING(FirstName,1,4) AS 'Primer Nombre'
FROM Person.Person
WHERE Person.BusinessEntityID = 1545

UPPER and LOWER: convierte una datos de carácter minúsculas a mayúsculas y viceversa

USE AdventureWorks2008
GO



SELECT UPPER(FirstName) as 'Primer Nombre'
FROM Person.Person
WHERE Person.BusinessEntityID = 883



STUFF: elimina una longitud de caracteres especificada e inserta otro conjunto de caracteres en una ubicación especificada.



LTRIM: elimina los espacios iniciales de una cadena.



RTRIM: elimina los espacios al final de una cadena.



REPLACE: sustituye a todas las ocurrencias de una cadena específica en una cadena dada con otra cadena.



SOUNDEX: devuelve un código de cuatro caracteres que (SOUNDEX) para evaluar la similitud de dos cadenas.



DIFFERENCE: devuelve un valor entero que indica la diferencia entre los valores SOUNDEX de dos caracteres de expresiones



DATE AND TIME FUNCTIONS



GETDATE: función determinista que devuelve la fecha del sistema actual y la hora.



DATEDIFF: función determinista que devuelve el número de los límites de fecha y hora en que existe entre dos fechas especificadas.



USE AdventureWorks2008
GO

SELECT
DATEDIFF(MONTH, OrderDate, GETDATE()) AS 'Numero Meses'
FROM Sales.SalesOrderHeader
WHERE SalesOrderID = 43659



DATEADD: función determinista que devuelve un valor de fecha y hora nuevo basado sobre cómo agregar un intervalo a la fecha especificada.



USE AdventureWorks2008
GO
SELECT
DATEADD(YEAR, 7, HireDate) AS 'Fecha de 3 años de finalización'
FROM HumanResources.Employee
WHERE BusinessEntityID = 30



DATEPART: función determinista excepto cuando se usa como DATEPART (dw, fecha). depende de DW, datepart el día de la semana, el valor establecido por SET DATEFIRST, que establece el primer día de la semana. Devuelve un entero que representa el datepart especificado.



USE AdventureWorks2008
GO
SELECT
DATEPART(DAY, BirthDate) AS 'Cumple Años'
FROM HumanResources.Employee
WHERE BusinessEntityID = 120


DATENAME: función determinista que devuelve una cadena de caracteres que representa el datepart especificado.  función no Determinista que devuelve una cadena de caracteres que representa el datepart especificado.



USE AdventureWorks2008
GO
SELECT
DATENAME(month, BirthDate) As 'Mes Cumple Años'
FROM HumanResources.Employee
WHERE BusinessEntityID = 120



DAY, MONTH, and YEAR: funciones deterministas que devuelve un entero que representa una parte del día, mes y año respectivamente.



GETUTCDATE: función determinista que devuelve el valor de datetime que representa a la hora UTC actual (tiempo universal coordinado o hora del meridiano de Greenwich).



SELECT GETUTCDATE()
FROM HumanResources.Employee
WHERE BusinessEntityID = 120


MATHEMATICAL FUNCTIONS



ABS: devuelve el valor absoluto, positivo de un número.



SELECT ABS(-1.0), ABS(-0.0355), ABS(1.12)



COS y SIN: devuelve el coseno y el seno del ángulo determinado, respectivamente.



SELECT COS(30.3)
SELECT ABS(SIN(30.3))



POWER: devuelve el valor de una expresión dada a la potencia especificada.



SELECT POWER(3,4), POWER(5,2)



REDONDEAR: muestra una expresión numérica, redondeada a la longitud especificada.



SELECT ROUND(23.23456, 4)



FLOOR y CEILING: devuelve el entero más grande menor o igual a y el número entero más pequeño mayor o igual a la expresión numérica determinada, respectivamente.



SELECT CEILING(156.234)
SELECT FLOOR(156.234)


SELECT CEILING(-34.564)
SELECT FLOOR(-34.564)



SQRT y SQUARE: devuelve la raíz cuadrada y el cuadrado de un número determinado, respectivamente.



SELECT SQRT(64)
SELECT SQUARE(9)


CONVERSION FUNCTIONS



Las funciones de conversión son CAST y CONVERT. Las funciones CAST y CONVERT convierten explícitamente una expresión de tipo de datos de uno a otro tipo de datos. La diferencia entre CAST y CONVERT es que CAST es ANSI, mientras que CONVERT no es ANSI. Además, CONVERT tiene parámetros de estilo opcional.



SELECT CAST ('19700926' AS SMALLDATETIME)
SELECT CONVERT(SMALLDATETIME,'19700926')
SELECT CONVERT(VARCHAR(MAX),GETDATE(), 3)
SELECT CONVERT(VARCHAR(MAX),GETDATE(), 103)



 



SYSTEM FUNCTIONS



HOST_NAME: función determinista que devuelve el nombre de la estación de trabajo y es bueno para realizar auditorías.



SELECT HOST_NAME()



XACT_STATE: función determinista que informa el estado de transacción de una sesión, que indica si la sesión tiene una transacción activa, y si la transacción es capaz de ser cometido.



SELECT XACT_STATE()



SYSTEM_USER: función determinista que permite un valor proporcionados por el sistema para el inicio de sesión actual que se insertará en una tabla cuando no se especifica ningún valor predeterminado.



SELECT SYSTEM_USER



CURRENT_TIMESTAMP: función determinista que devuelve la fecha y hora actuales.



SELECT CURRENT_TIMESTAMP



DATALENGTH: función determinista que devuelve el número de bytes que se utiliza para representar cualquier expresión.



select DATALENGTH('EXPRESSION Longitud')



SUSER_SNAME: función determinista que devuelve el nombre de identificación de inicio de sesión de número de identificación del usuario de seguridad.



SELECT SUSER_NAME( 1 )   sa


SELECT SUSER_NAME( 2 )   public


SELECT SUSER_NAME( 3 )   sysadmin


SELECT SUSER_NAME( 4 )   securityadmin



SELECT SUSER_NAME( 5 )      serveradmin



SELECT SUSER_NAME( 6 )      setupadmin



METADATA FUNCTIONS



DB_NAME: muestra el nombre de base de datos actual.



OBJECT_ID: muestra el número de identificación de objeto de la base de datos actual.



OBJECT_NAME: muestra el nombre de la base de datos de objeto.



USE AdventureWorks2008;
GO

DECLARE
@ObjetoId int;
SET @ObjetoId = (SELECT OBJECT_ID('HumanResources.Employee', 'U'));

SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(@ObjetoId);


NULL FUNCTIONS



ISNULL: reemplazos NULL con el valor especificado de reemplazo.



NULLIF: devuelve NULL si los dos había especificado expresiones es equivalentes.



COALESCE: devuelve la primera expresión no NULL entre sus argumentos.



USE AdventureWorks2008;

SELECT AVG(ISNULL(Weight, 50))

FROM Production.Product;

0 comentarios: