EJEMPLOS DE FUNCIONES 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

SELECT PATINDEX('%en_ure%', 'please, ensure the door, is locked') [PATINDEX];
USE tempdb;
GO
-->> Resultado: 9

SELECT PATINDEX ( '%ein%', 'Das ist ein Test' COLLATE Latin1_General_BIN) [PATINDEX];
GO
-->> Resultado: 9

–***************************************************************
REPLACE

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()

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

–>> Resultado: ‘bcd’

–**************************************************************
LEFT

SELECT LEFT('abcdefg',2) [LEFT];
GO
-->> Resultado: 'ab'

RIGTH

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

–>> Resultado: ‘fg’

–******************************************************************

LEN

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

–>> Resultado: ’34’

********************************************************************

RTRIM()

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

–>> Resultado: ‘Removes trailing spaces.’

LTRIM()

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

–>> Resultado: ‘Removes trailing spaces.’
–*****************************************************************
–FUNCION 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

SELECT REVERSE(1234) AS Reversed ;
GO

–>> Resultado: 4321

–***************************************************************
–Descartar de una cadena el ultimo valor de una serie de valores separado por comas

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:0|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: 0

–******************************************************************
— BUSCA LAS Palabras en SP o Tablas. 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: Muestra toda la tabla de sistema:
INFORMATION_SCHEMA.ROUNTINES

–*****************************************************************

Anuncios

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 )

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 )

Google+ photo

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

Conectando a %s