Ejemplos mas usados de funciones en SQL Server


Ejemplos mas usados de funciones en SQL Server | jazdian

phone

Vamos a crear un compendio con Ejemplos (mas usados) de funciones en SQL Server. Así ire añadiendo mas y mas Funciones mas usadas en SQL Server.

CHARINDEX
Cuenta la cantidad de caracteres

DECLARE @document varchar(64);
SELECT @document = 'Reflectors are vital safety components of your bicycle.';
SELECT CHARINDEX('bicycle', @document) 
[CHARINDEX: Cantidad de caracteres];
GO

-- Resultado: 48

— El siguiente ejemplo hace una busqueda exacta (Detecta mayusculas y minusculas).
— de la cadena ‘Prueba’ EN ‘Esto es una Prueba’

USE tempdb;
GO
SELECT CHARINDEX ( 'Prueba', 'Esto es una Prueba' COLLATE Latin1_General_CS_AS) 
[CHARINDEX: Busqueda Exacta];

-- Resultado: 13


PATINDEX: Devuelve la posición inicial de la primera aparición de un patrón en una expresión especificada, o ceros si no se encuentra el patrón, en todos los tipos de datos válidos de texto y caracteres.

Sigamos viendo mas ejemplos de funciones que mas se utilizan en SQL Server.

SELECT PATINDEX('%door%', 'please, ensure the do_r, is locked') [PATINDEX];
USE tempdb;
GO

-- Resultado: 20

SELECT PATINDEX ( '%ein%', 'Das ist ein Test' COLLATE Latin1_General_BIN) [PATINDEX];
GO

-- Resultado: 9


REPLACE: Reemplaza todas las ocurrencias de un valor de cadena especificado con otro valor de cadena.

SELECT REPLACE('abcdefghicde','cde','xxx') [REPLACE];
GO

-- Resultado: 'abxxxfghixxx'

SELECT REPLACE('This is a Test' COLLATE Latin1_General_BIN,
'Test', 'desk' ) [REPLACE];
GO

-- Resultado: 'This is a desk'

SUBSTRING(): Devuelve parte de una expresión de carácter, binario, texto o imagen en SQL Server.

SELECT [SUBSTRING] = SUBSTRING('abcdef', 2, 3);
GO

–- Resultado: ‘bcd’

LEFT: Devuelve la parte izquierda de una cadena de caracteres con el número especificado de caracteres.

SELECT LEFT('abcdefg',2) [LEFT];
GO

-- Resultado: 'ab'

RIGTH: Devuelve la parte derecha de una cadena de caracteres con el número especificado de caracteres.

SELECT RIGHT('abcdefg',2) 
[RIGHT];
GO

-- Resultado: 'fg'

LEN: Devuelve el número de caracteres de la expresión de cadena especificada, excluyendo los espacios finales

SELECT LEN ( 'please, ensure the door, is locked' ) 
[LEN];

-- Resultado: '34' 

RTRIM(): Devuelve una cadena de caracteres después de truncar todos los espacios finales

SELECT RTRIM('Removes trailing spaces.    ') 
[RTRIM];

-- Resultado: 'Removes trailing spaces.'

LTRIM(): Devuelve una expresión de caracteres después de eliminar espacios en blanco iniciales

SELECT LTRIM('    Removes trailing spaces.') 
[LTRIM];

-- Resultado: 'Removes trailing spaces.’ 

FUNCIÓN PARA CONTAR EL NUMERO DE VECES QUE SE REPITE UNO O VARIOS CARACTERES

declare @myvar varchar(max), @tocount varchar(20)
set @myvar = 'Hello World, Hello World'
set @tocount = 'lo'

select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount) ["lo" se Repite:]

-- Resultado: 2

REVERSE: Devuelve el orden inverso de un valor de cadena.

SELECT REVERSE(1234) AS Reversed ;
GO

-- Resultado: 4321 

Ahora veamos como descartar de una cadena el ultimo valor de una serie de valores separado por comas. Ejemplo ‘NOM_CURSO,MES,PERIODO,DIA’

DECLARE @CADENA VARCHAR(50)
SET @CADENA = 'NOM_CURSO,MES,PERIODO,DIA'

SET @CADENA = REVERSE(@CADENA);
SET @CADENA = SUBSTRING(@CADENA,(CHARINDEX(',',@CADENA,0))+1,LEN(@CADENA));
SET @CADENA = REVERSE(@CADENA);

select @CADENA

-- Resultado: 'NOM_CURSO,MES,PERIODO' 

QUITAR CARACTERES ESPECIALES DE UNA CADENA

DECLARE @str VARCHAR(400)
DECLARE @expres VARCHAR(50) = '%[~,@,#,$,%,&,*,(,),.,!,0-9,|]%'
SET @str = '(remove) ~special~ 10 *characters. 3,5 from | string 1 in sql!'
WHILE PATINDEX( @expres, @str ) > 0
SET @str = Replace(REPLACE( @str, SUBSTRING( @str, PATINDEX( @expres, @str ), 1 ),''),'-',' ')

SELECT @str

-- Resultado: 'remove special characters from string in sql'

Extrae texto de una cadena

DECLARE @CadenaTexto AS VARCHAR(250)
DECLARE @CLAVE_1 AS VARCHAR(50)
DECLARE @CLAVE_2 INT
DECLARE    @PosiA INT
DECLARE    @PosiB INT
DECLARE @PosiC INT

SET @CadenaTexto = 'login:XDR5F6F|NOM_CLAVE:PEDRO|SUB_CVE:PEDRO-1|NUM_CLAVE:10|CLAVE_SUB:nulo|STATUS:nulo|DIST_NOMBRE:PEDRO PEREZ MORALES|'

SET @PosiA = CHARINDEX('NOM_CLAVE:', @CadenaTexto)
SET @PosiB = CHARINDEX(':', @CadenaTexto, @PosiA) + 1
SET @PosiC = CHARINDEX('|', @CadenaTexto, @PosiB)
SELECT @CLAVE_1 = SUBSTRING(@CadenaTexto, @PosiB, @PosiC-@PosiB)
SELECT @CLAVE_1 [CLAVE_1]

-- Resultado: 'PEDRO'

SET @PosiA = CHARINDEX('NUM_CLAVE:', @CadenaTexto)
SET @PosiB = CHARINDEX(':', @CadenaTexto, @PosiA) + 1
SET @PosiC = CHARINDEX('|', @CadenaTexto, @PosiB)
SELECT @CLAVE_2 = SUBSTRING(@CadenaTexto, @PosiB, @PosiC-@PosiB)
SELECT @CLAVE_2 [CLAVE_2]

-- Resultado: 10 

Este query como tal no es una Funcione de las mas usadas en SQL Server, mas bien lo que hace es que BUSCA LAS Palabras en un Store Procedure o Tabla. ROUTINES

USE MI_BASE

SELECT ROUTINE_NAME, ROUTINE_DEFINITION, *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%ELEARN_BITACORA_EXAMEN%'
AND ROUTINE_TYPE='PROCEDURE'

-- Resultado: 


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *