Diseño de Base de Datos, parte X: Funciones

Las funciones prefabricadas de SQL nos permiten realizar múltiples operaciones en nuestros scripts: Desde poner en mayúsculas o minúsculas el resultado de un campo, hasta asignar fechas o validar si un campo es NULL.

A continuación mostraré algunas de las funciones que SQL, y MSSQL, provee. Algunas variarán entre DBMS (como la función TOP, su equivalente es FIRST en FirebirdSQL), pero el principio es el mismo.

Figura 1. Funciones de cadena

Ejemplos.-

SELECT UPPER(cus.FirstName)
FROM Customer cus;
GO
/** Output **/
————————————–
PAOLO
PEDRO
MARIA
MIGUEL
VICTORIA
BERNARDO
HELEN
SELECT LOWER(cus.FirstName)
FROM Customer cus;
GO
/** Output **/
————————————–
paolo
pedro
maria
miguel
victoria
bernardo
helen
SELECT LEFT(cus.FirstName, 2)
FROM Customer cus;
GO
/** Output **/
Pa
Pe
Ma
Mi
Vi
Be
He
Figura 2. Funciones de cadena

Ejemplos.-

SELECT RIGHT(cus.FirstName, 2)
FROM Customer cus;
GO
/** Output**/
lo
ro
ia
el
ia
do
en
na
SELECT LTRIM(' Removes trailing spaces.');
GO
/** Output **/
———————–
Removes trailing spaces.
SELECT RTRIM('Removes trailing spaces. ');
GO
/** Output **/
———————–
Removes trailing spaces.
SELECT SUBSTRING(cus.FirstName, 2, 3)
FROM Customer cus;
GO
/** Output **/
aol
edr
ari
igu
ict
ern
ele
Figura 3. Funciones de fecha

Ejemplos.-

SELECT GETDATE();
GO
/** Output **/
———————
20170320 16:57:22.273
SELECT DATEPART(yy, ord.OrderDate)
FROM [ORDER] ord;
GO
/** Output **/
2014
2014
2014
2014
2014
2014
2014
SELECT DATEADD(mm, 1, GETDATE());
GO
/** Output **/
———————
20170420 16:59:18.760
SELECT MONTH('20170426');
GO
/** Output **/
———
4
SELECT DAY('20170426');
GO
/** Output **/
———
26
SELECT YEAR('20170426');
GO
/** Output **/
———
2017
Figura 4. Funciones de fecha

Ejemplos.-

SELECT DATENAME(weekday, GETDATE());
GO
/** Output **/
—————————-
Sunday
SELECT DATEDIFF(dd, '20170426', '20170725');
GO
/** Output **/
———
90
SELECT DATEFROMPARTS(2017, 04, 26);
GO
/** Output **/
——–
20170426
Figura 5. Otras funciones

Ejemplos.-

SELECT ISNULL(CONVERT(VARCHAR(MAX), ord.OrderDate), 'Sin Fecha')
FROM [ORDER] ord;
GO
/** Output **/
——————
Jul 4 2012 12:00AM
Jul 5 2012 12:00AM
Jul 8 2012 12:00AM
Jul 8 2012 12:00AM
Jul 9 2012 12:00AM
Jul 10 2012 12:00AM
Jul 11 2012 12:00AM
Jul 12 2012 12:00AM
SELECT NULLIF(100, 50*2);
GO
/** Output **/
NULL
SELECT NULLIF(2*2, 2*7);
GO
/** Output **/
———
4
SELECT COALESCE(sup.Phone, sup.Fax) "Contacto"
FROM Supplier sup;
GO
/** Output **/
Contacto
—————————-
(171) 5552222
(100) 5554822
(313) 5555735
(03) 35555011
(98) 598 76 54
Figura 6. Otras funciones

Ejemplos.-

DECLARE @myDecimalValue FLOAT
SET @myDecimalValue = 3.1415
SELECT CAST(@myDecimalValue AS INT);
GO
/** Output **/
———
3
DECLARE @myDecimalValue FLOAT
SET @myDecimalValue = 4521312.531
SELECT CONVERT(INT, @myDecimalValue);
GO
/** Output **/
———
4521312
SELECT TOP 5 *
FROM Customer;
GO
/** Output **/
Id FirstName LastName City Country Phone
——— —————————————- —————————————- —————————————- —————————————- ——————–
1 Maria Anders Berlin Germany 0300074321
2 Ana Trujillo México D.F. Mexico (5) 5554729
3 Antonio Moreno México D.F. Mexico (5) 5553932
4 Thomas Hardy London UK (171) 5557788
5 Christina Berglund Luleå Sweden 092112 34 65
Figura 7. Dateparts para las funciones de fechas

Bibliografía.-

Libros.-

  • Fehily, C. (2005). SQL: Visual Quickstart Guide, Third Edition. Peachpit Press.

Web.-

Otros.-

  • Curso SQL de Nectri

_____________________________________________________________
Síguenos en: Facebook, InstagramTwitter y LinkedIn
¡No olvides seguirme en Twitter!: @_ArCiGo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s