Buscar..


Introducción

SQL proporciona varias funciones escalares incorporadas. Cada función escalar toma un valor como entrada y devuelve un valor como salida para cada fila en un conjunto de resultados.

Utiliza funciones escalares siempre que se permita una expresión dentro de una instrucción T-SQL.

Sintaxis

  • CAST (expresión AS tipo de datos [(longitud)])
  • CONVERTIR (tipo_de_datos [(longitud)], expresión [, estilo])
  • PARSE (string_value AS data_type [USING culture])
  • NOMBRE DE DATOS (fecha parte, fecha)
  • OBTENER LA FECHA ( )
  • DATEDIFF (fecha, fecha de inicio, fecha de finalización)
  • DATEADD (fecha, número, fecha)
  • ELEGIR (índice, val_1, val_2 [, val_n])
  • IIF (boolean_expression, true_value, false_value)
  • SIGN (numeric_expression)
  • PODER (float_expression, y)

Observaciones

Las funciones escalares o de una sola fila se utilizan para operar cada fila de datos en el conjunto de resultados, a diferencia de las funciones agregadas que operan en todo el conjunto de resultados.

Hay diez tipos de funciones escalares.

  1. Las funciones de configuración proporcionan información sobre la configuración de la instancia de SQL actual.
  2. Las funciones de conversión convierten los datos en el tipo de datos correcto para una operación determinada. Por ejemplo, estos tipos de funciones pueden reformatear la información al convertir una cadena en una fecha o número para permitir la comparación de dos tipos diferentes.
  3. Las funciones de fecha y hora manipulan los campos que contienen valores de fecha y hora. Pueden devolver valores numéricos, de fecha o de cadena. Por ejemplo, puede usar una función para recuperar el día actual de la semana o el año o para recuperar solo el año de la fecha.

Los valores devueltos por las funciones de fecha y hora dependen de la fecha y la hora establecidas para el sistema operativo de la computadora que ejecuta la instancia de SQL.

  1. Función lógica que realiza operaciones mediante operadores lógicos. Evalúa un conjunto de condiciones y devuelve un solo resultado.
  2. Las funciones matemáticas realizan operaciones matemáticas, o cálculos, en expresiones numéricas. Este tipo de función devuelve un solo valor numérico.
  3. Las funciones de metadatos recuperan información sobre una base de datos específica, como su nombre y los objetos de la base de datos.
  4. Las funciones de seguridad proporcionan información que puede utilizar para administrar la seguridad de una base de datos, como información sobre los usuarios y roles de la base de datos.
  5. Las funciones de cadena realizan operaciones en valores de cadena y devuelven valores numéricos o de cadena.

Mediante las funciones de cadena, puede, por ejemplo, combinar datos, extraer una subcadena, comparar cadenas o convertir una cadena a todos los caracteres en mayúscula o minúscula.

  1. Las funciones del sistema realizan operaciones y devuelven información sobre valores, objetos y configuraciones para la instancia de SQL actual
  2. Las funciones estadísticas del sistema proporcionan varias estadísticas sobre la instancia de SQL actual, por ejemplo, para que pueda monitorear los niveles de rendimiento actuales del sistema.

Modificaciones de caracteres

Las funciones de modificación de caracteres incluyen la conversión de caracteres a mayúsculas o minúsculas, la conversión de números a números formateados, la manipulación de caracteres, etc.

La función lower(char) convierte el parámetro de carácter dado en caracteres en minúsculas.

SELECT customer_id, lower(customer_last_name) FROM customer;

devolvería el apellido del cliente cambiado de "SMITH" a "smith".

Fecha y hora

En SQL, utiliza los tipos de datos de fecha y hora para almacenar información de calendario. Estos tipos de datos incluyen la hora, la fecha, el tiempo pequeño, la fecha y la hora, la fecha y la hora y la fecha y hora. Cada tipo de datos tiene un formato específico.


Tipo de datos Formato
hora hh: mm: ss [.nnnnnnn]
fecha YYYY-MM-DD
tiempo pequeño YYYY-MM-DD hh: mm: ss
fecha y hora YYYY-MM-DD hh: mm: ss [.nnn]
datetime2 YYYY-MM-DD hh: mm: ss [.nnnnnnn]
datetimeoffset YYYY-MM-DD hh: mm: ss [.nnnnnnn] [+/-] hh: mm

La función DATENAME devuelve el nombre o valor de una parte específica de la fecha.

SELECT DATENAME (weekday,'2017-01-14') as Datename
Nombre de datos
sábado

Utiliza la función GETDATE para determinar la fecha y hora actuales de la computadora que ejecuta la instancia de SQL actual. Esta función no incluye la diferencia de zona horaria.

SELECT GETDATE() as Systemdate 
Fecha del sistema
2017-01-14 11: 11: 47.7230728

La función DATEDIFF devuelve la diferencia entre dos fechas.

En la sintaxis, datepart es el parámetro que especifica qué parte de la fecha desea utilizar para calcular la diferencia. La fecha puede ser año, mes, semana, día, hora, minuto, segundo o milisegundo. A continuación, especifique la fecha de inicio en el parámetro de fecha de inicio y la fecha de finalización en el parámetro de fecha de finalización para la que desea encontrar la diferencia.

SELECT SalesOrderID, DATEDIFF(day, OrderDate, ShipDate) 
AS 'Processing time'
FROM Sales.SalesOrderHeader
SalesOrderID Tiempo de procesamiento
43659 7
43660 7
43661 7
43662 7

La función DATEADD permite agregar un intervalo a parte de una fecha específica.

SELECT DATEADD (day, 20, '2017-01-14') AS Added20MoreDays
Added20MoreDays
2017-02-03 00: 00: 00.000

Configuración y función de conversión

Un ejemplo de una función de configuración en SQL es la función @@SERVERNAME . Esta función proporciona el nombre del servidor local que ejecuta SQL.

SELECT @@SERVERNAME AS 'Server'
Servidor
SQL064

En SQL, la mayoría de las conversiones de datos ocurren implícitamente, sin la intervención del usuario.

Para realizar cualquier conversión que no se pueda completar implícitamente, puede usar las funciones CAST o CONVERT .

La sintaxis de la función CAST es más simple que la sintaxis de la función CONVERT , pero está limitada en lo que puede hacer.

Aquí, usamos las funciones CAST y CONVERT para convertir el tipo de datos datetime al tipo de datos varchar .

La función CAST siempre utiliza la configuración de estilo predeterminada. Por ejemplo, representará fechas y horas utilizando el formato AAAA-MM-DD.

La función CONVERT utiliza el estilo de fecha y hora que especifique. En este caso, 3 especifica el formato de fecha dd / mm / aa.

USE AdventureWorks2012
GO
SELECT FirstName + ' ' + LastName + ' was hired on ' +
       CAST(HireDate AS varchar(20)) AS 'Cast',
       FirstName + ' ' + LastName + ' was hired on ' +
       CONVERT(varchar, HireDate, 3) AS 'Convert'
FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID
GO
Emitir Convertir
David Hamiltion fue contratado el 2003-02-04 David Hamiltion fue contratado el 04/02/03

Otro ejemplo de una función de conversión es la función PARSE . Esta función convierte una cadena a un tipo de datos especificado.

En la sintaxis de la función, especifique la cadena que se debe convertir, la palabra clave AS y luego el tipo de datos requerido. Opcionalmente, también puede especificar la cultura en la que se debe formatear el valor de la cadena. Si no especifica esto, se usa el idioma de la sesión.

Si el valor de la cadena no se puede convertir a un formato numérico, de fecha o de hora, se producirá un error. A continuación, deberá utilizar CAST o CONVERT para la conversión.

SELECT PARSE('Monday, 13 August 2012' AS datetime2 USING 'en-US') AS 'Date in English'
Fecha en ingles
2012-08-13 00: 00: 00.0000000

Función lógica y matemática

SQL tiene dos funciones lógicas: CHOOSE y IIF .

La función CHOOSE devuelve un elemento de una lista de valores, según su posición en la lista. Esta posición está especificada por el índice.

En la sintaxis, el parámetro de índice especifica el elemento y es un número entero o entero. El parámetro val_1 ... val_n identifica la lista de valores.

SELECT CHOOSE(2, 'Human Resources', 'Sales', 'Admin', 'Marketing' ) AS Result;
Resultado
Ventas

En este ejemplo, utiliza la función CHOOSE para devolver la segunda entrada en una lista de departamentos.


La función IIF devuelve uno de los dos valores, en función de una condición particular. Si la condición es verdadera, devolverá el valor verdadero. De lo contrario, devolverá un valor falso.

En la sintaxis, el parámetro boolean_expression especifica la expresión booleana. El parámetro true_value especifica el valor que debe devolverse si la boolean_expression se evalúa como verdadera y el parámetro false_value especifica el valor que debe devolverse si la boolean_expression se evalúa como falsa.

SELECT BusinessEntityID, SalesYTD, 
       IIF(SalesYTD > 200000, 'Bonus', 'No Bonus') AS 'Bonus?'
FROM Sales.SalesPerson
GO
BusinessEntityID VentasYTD ¿Prima?
274 559697.5639 Prima
275 3763178.1787 Prima
285 172524.4512 No Bonus

En este ejemplo, utiliza la función IIF para devolver uno de los dos valores. Si las ventas de un vendedor hasta la fecha son superiores a 200,000, esta persona será elegible para recibir un bono. Los valores inferiores a 200,000 significan que los empleados no califican para los bonos.


SQL incluye varias funciones matemáticas que puede utilizar para realizar cálculos en valores de entrada y devolver resultados numéricos.


Un ejemplo es la función SIGN , que devuelve un valor que indica el signo de una expresión. El valor de -1 indica una expresión negativa, el valor de +1 indica una expresión positiva y 0 indica cero.

SELECT SIGN(-20) AS 'Sign'
Firmar
-1

En el ejemplo, la entrada es un número negativo, por lo que el panel Resultados muestra el resultado -1.


Otra función matemática es la función de POWER . Esta función proporciona el valor de una expresión elevada a una potencia específica.

En la sintaxis, el parámetro float_expression especifica la expresión, y el parámetro y especifica la potencia a la que desea elevar la expresión.

SELECT POWER(50, 3) AS Result
Resultado
125000


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow