Funciones de Cadena - SQL Server

  • Published on
    08-Jul-2015

  • View
    1.570

  • Download
    0

Embed Size (px)

Transcript

FUNCIONES DE CADENA ASCII (T-SQL): Devuelve el valor del cdigo ASCII del carcter de la izquierda de una expresin de caracteres. Sintaxis: ASCII(expresinCaracteres) Tipo devuelto: int Ejemplo : SELECT ascii(A) CHAR (T-SQL): Una funcin de cadenas de texto que convierte un cdigo ASCII int a carcter. Sintaxis: CHAR(expresinEntera) ExpresinEntera Es un entero entre 0 y 255. Devuelve NULL si la expresin entera no se encuentra dentro de dicho intervalo. Tipo devueltos: char Ejemplo : SELECT char(66) CHARINDEX (T-SQL): Devuelve la posicin inicial de la expresin especificada en una cadena de caracteres. Sintaxis: CHARINDEX(expresin1, expresin2 [, posicinInicial]) expresin1: Es una expresin que contiene la secuencia de caracteres que se desea buscar. Es una expresin del tipo de datos de caracteres corto. expresin2 : Es una expresin, normalmente una columna, en la que se busca la cadena especificada. expresin2 es de la categora del tipo de datos cadena de caracteres. posicinInicial : Es la posicin del carcter de expresin2 en el que se empieza la bsqueda de expresin1. Si no se especifica posicinInicial, es un nmero negativo o es cero, la bsqueda empieza al principio de la cadena expresin2. Tipos devueltos: int Ejemplo : USE pubs SELECT CHARINDEX('wonderful', notes) FROM titles WHERE title_id = 'TC3218' LEFT (T-SQL): Devuelve la parte de una cadena de caracteres que comienza en el nmero de caracteres especificado a partir de la izquierda. Sintaxis: LEFT(expresinCarcter, expresinEntera) expresinCarcter :Es una expresin de caracteres o de datos binarios. expresinCarcter puede ser una constante, una variable o una columna, y debe tener un tipo de datos que se pueda convertir implcitamente a varchar. En caso contrario, puede usar la funcin CAST para convertir expresinCarcter explcitamente. expresinEntera: Es un nmero entero positivo. Si expresinEntera es negativo, se devuelve una cadena nula. Tipos devueltos: varchar Ejemplo : USE pubs SELECT LEFT(title, 5) FROM titles ORDER BY title_id

LEN (T-SQL): Devuelve el nmero de caracteres, en lugar del nmero de bytes, de la expresin de cadena dada, excluidos los espacios finales en blanco. |Sintaxis: LEN(expresinCadena) expresinCadena :Es la expresin de cadena que debe evaluarse. Tipos devueltos: int Ejemplos: Este ejemplo selecciona el nmero de caracteres y los datos de CompanyName de las empresas ubicadas en Finlandia. USE Northwind GO SELECT LEN(CompanyName) AS 'Length', CompanyName FROM Customers WHERE Country = 'Finland' Declare @cod char(20) set @cod="ConanII " SELECT len(@cod) LOWER (T-SQL): Devuelve una expresin de caracteres despus de convertir a minsculas los datos de caracteres que estn en maysculas. Sintaxis LOWER(expresinCarcter) LTRIM (T-SQL): Devuelve una expresin de caracteres despus de quitar los espacios en blanco a la izquierda. Sintaxis: LTRIM(expresinCarcter) Ejemplo : declare @nombre varchar(30) set @nombre=" Conan el Destructor" SELECT Ltrim(@nombre) RTRIM (T-SQL): Devuelve una cadena de caracteres despus de quitar todos los espacios en blanco finales. Sintaxis: RTRIM(expresinCarcter) SUBSTRING (T-SQL): Devuelve parte de una expresin de caracteres, binaria, de texto o de imagen Sintaxis: SUBSTRING(expresin, inicio, longitud) expresin : Es una cadena de caracteres, cadena binaria, texto, imagen, columna o expresin que incluye una columna. No deben usarse expresiones que incluyan funciones de agregado. inicio: Es un entero que especifica el punto en que comienza la subcadena. longitud: Es un entero que especifica la longitud de la subcadena (el nmero de caracteres o bytes que se devuelven). Ejemplo: USE pubs SELECT au_lname, SUBSTRING(au_fname, 1, 1) FROM authors ORDER BY au_lname

UPPER (T-SQL): Devuelve una expresin de tipo carcter con datos de carcter en minscula convertidos a mayscula. Sintaxis: UPPER(expresinCarcter) expresinCarcter: Es una expresin de datos de tipo carcter. expresinCarcter puede ser una constante, una variable o una columna de datos de tipo carcter o binarios. STR (T-SQL): Devuelve datos de tipo carcter obtenidos a partir de datos numricos. Sintaxis: STR(expresinFloat[, longitud[, decimales]]) expresinFloat: Es una expresin de tipo de datos numrico aproximado (float) con separador decimal. No debe utilizar una funcin ni una subconsulta como la expresinFloat de la funcin STR. longitud : Es la longitud total, incluido el separador decimal, el signo, los dgitos y los espacios. El valor predeterminado es 10. Decimal: Es el nmero de cifras a la derecha del separador decimal. Tipos devueltos: char RIGHT (T-SQL) Devuelve la parte de una cadena de caracteres que comienza en el nmero de caracteres especificado en expresinEntera a partir de la derecha. Sintaxis: RIGHT(expresinCarcter, expresinEntera) FUNCIONES DE CONVERSIN CAST y CONVERT (T-SQL): Convierten explcitamente una expresin de un tipo de datos a otro. CAST y CONVERT proporcionan una funcionalidad similar. Uso de CAST: CAST(expresin AS tipoDatos) Uso de CONVERT: CONVERT (tipoDatos[(longitud)], expresin [, estilo]) Expresin: Es cualquier expresin vlida de Microsoft SQL Server. TipoDatos : Es el tipo de datos destino proporcionado por el sistema. No se pueden utilizar tipos de datos definidos por el usuario. Longitud: Es un parmetro opcional de los tipos de datos nchar, nvarchar, char, varchar, binary o varbinary. Estilo: Es el estilo del formato de fecha que se desea al convertir datos datetime o smalldatetime a datos de cadenas de caracteres (tipos de datos nchar, nvarchar, char, varchar, nchar o nvarchar), o el formato de cadena cuando se convierten datos float, real, money o smallmoney a datos de cadenas de caracteres (tipos de datos nchar, nvarchar, char, varchar, nchar o nvarchar). LIKE '%PALABRA%': para buscar partes de palabras. SELECT * FROM TABLA WHERE UPPER(NOMBRE) "%'+UPPER('BUSCAR')+'%': para buscar en mayscula o minscula.

LIKE

RIGHT OUTER JOIN: cuando se necesita relacionar una la tabla por ejemplo de artculos con una tabla de existencias, pero que solo de cmo resultado todos los artculos que pertenecieran a un tipo de familia sin importar si existe o no el registro correspondiente en la tabla de existencias. Se debe tener en cuenta el orden de ejecucin de las clusulas, porque lo que debemos hacer es utilizar la clusula ON para indicar los filtros sobre la tabla en la que se especifica el OUTER (en nuestro caso, '"existencia") y despus emplear la clusula WHERE para la tabla de la que queremos extraer todos los registros ("articulo" en este ejemplo): Solucin: SELECT articulo.*,existencia.* FROM existencia RIGHT OUTER JOIN articulo ON existencia.fam_art = articulo.fam_art AND existencia.cod_art = articulo.cod_art AND existencia.ejercicio = 2008 WHERE articulo.fam_art = 'AJUSA' HAVING: muestra cualquier registro agrupado por la clusula GROUP BY que satisfaga las condiciones de la clusula HAVING. HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar. HAVING COUNT(*) :cuenta los registros agrupados por GROUP BY. INNER JOIN: en cualquier clusula FROM. Esto crea una combinacin por equivalencia, conocida tambin como unin interna. Las combinaciones equivalentes son las ms comunes; stas combinan los registros de dos tablas siempre que haya concordancia de valores en un campo comn a ambas tablas. Se puede utilizar INNER JOIN con las tablas Departamentos y Empleados para seleccionar todos los empleados de cada departamento. Por el contrario, para seleccionar todos los departamentos (incluso si alguno de ellos no tiene ningn empleado asignado) se emplea LEFT JOIN o todos los empleados (incluso si alguno no est asignado a ningn departamento), en este caso RIGHT JOIN.