Introducción a las funciones de cadena comunes de SQL Server

las funciones de cadena SQL integradas le permiten encontrar y alterar valores de texto, como tipos de datos VARCHAR y CHAR, en SQLServer. Usando estas funciones puede alterar un valor de texto como cambiar «Smith, Joe» a » Joe Smith.»

si no está familiarizado con las funciones SQL, entonces le recomendaría mirar con la introducción a las funciones integradas de SQL Server.

para obtener la mayor parte de esto y nuestras otras lecciones asegúrese de practicar el uso de los ejemplos!,

Todos los ejemplos de esta lección se basan en Microsoft SQL Server Management Studio y la base de datos AdventureWorks2012. Puede comenzar a usar estas herramientas gratuitas utilizando mi guía Introducción a SQL Server.

Introducción a las funciones de cadena de SQL Server

las funciones de cadena de t-SQL se utilizan para manipular o devolver información sobre expresiones de texto como tipos de datos CHAR y VARCHAR.

Hay muchas funciones de cadena dentro de SQL a su disposición., Generalmente las categorizaría como:

  • Position
  • Transformation
  • Character Set
  • Soundex

todas las funciones están listadas en la página String Functions (Transact-SQL). Recomendaría visitar esa página para aprender sobre cada función.

en lugar de reiterar ese material, nos centraremos en las funciones que he visto en las que se usan comúnmente en los negocios.

en las siguientes tablas categoricé las funciones y las codifiqué por colores. El código de color corresponde al capó probable que utilizaría esa función en particular en un entorno empresarial., El verde es más probable que se utilice, y el rojo menos.

Esta no es una escala estricta, y todas las funciones tienen un uso en algún caso de negocio, pero quería una manera de ayudarlo a reducir el campo a las más relevantes.

Aquí está mi intento:

SQL Server String Functions – Funciones comúnmente utilizadas en verde

funciones utilizadas para encontrar la posición

CHARINDEX

la función CHARINDEX se utiliza para encontrar la posición de una cadena dentro de otra., Esto puede ser útil cuando necesita separar datos por guiones o comas.

La forma general de la función CHARINDEX es

CHARRINDEX(value to find, value to search)

Donde valor es uno o más caracteres de los que desea encontrar el valor a buscar.

si se encuentra el valor, se devuelve la posición inicial. Si no se encuentra el valor, se devuelve 0 (cero).

si el valor a buscar o el valor a buscar son NULL, entonces se devuelve NULL.

CHARINDEX en acción!,

LEN

La función LEN devuelve el número de caracteres de una cadena.

en el siguiente ejemplo se puede ver que la longitud de «SQL Server» es 10.

Ejemplo de la función LEN

Longitud es rara vez utilizado en su propia. Se utiliza principalmente en conjunción con otras funciones, tales como izquierda y derecha.,

funciones utilizadas para transformar cadenas

izquierda y derecha

las funciones izquierda y derecha se utilizan para devolver la parte inicial o final de una cadena.

LEFT devolverá los caracteres iniciales; mientras que, RIGHT se usa para devolver los caracteres finales.

la forma general para la función izquierda es

LEFT(value, length)

donde value es la cadena con la que está trabajando, y length es el número de caracteres que desea devolver desde el principio de value.,

Ejemplo de Función IZQUIERDA

Si la longitud es mayor que el número de caracteres en el valor, a continuación, toda la cadena se devuelve.

si la longitud es negativa, se genera un error.

si la longitud o el valor son NULL, se devuelve NULL.

la función de cadena derecha funciona de manera similar a la izquierda, pero devuelve los caracteres finales en lugar del principio.

SELECT RIGHT(‘SQL Rocks!’,6)

devuelve el valor ‘Rocks!,’

supongamos que el Gerente de producción quiere una lista distinta de todos los prefijos de número de producto. ¿Cómo pudiste devolver esa lista?

Si nos fijamos en la producción.Product ProductNumber valor de la columna notarás que el prefijo es los dos primeros caracteres. Así que sabiendo lo que hacemos ahora sobre la función izquierda, la solución es un broche de presión!

esto es lo que puede escribir:

SELECT DISTINCT LEFT(ProductNumber,2)FROM Production.Product

la función izquierda devuelve los dos primeros caracteres. Dado que estamos utilizando el operador DISTICT, los resultados duplicados se eliminan del resultado.

OK así que ahora el gerente de producción se está volviendo loco!, El último carácter del prefijo ProcuctNumber significa mucho para ella. Quiere saber cuáles son esos valores distintos. ¿Qué podemos hacer para ayudar?

Podemos usar izquierda y derecha en conjunto. Ya sabemos cómo obtener la mayoría de los caracteres de la izquierda, Ahora todo lo que necesitamos hacer es tomar el último carácter de ese resultado y devolverlo como se muestra a continuación.

función de anidamiento para devolver caracteres.,

Aquí está la consulta que puede usar:

SELECT DISTINCT RIGHT(LEFT(ProductNumber,2),1)FROM Production.Product

Al igual que otras funciones, puede anidar funciones de cadena. Solo recuerde que los resultados de una función se pueden utilizar en otra. Usted debe leer estas expresiones de la » inside out.»

SUBSTRING

la función SUBSTRING se utiliza para devolver caracteres de otra cadena.,

la forma general de la función SUBSTRING es

SUBSTRING(value, position, length)

donde value es la cadena con la que está trabajando, position es el carácter para comenzar a devolver caracteres y length es el número de caracteres a devolver.

si la longitud es negativa, se devuelve un error.

si la posición o la longitud son NULL, entonces se devuelve NULL.

Ejemplo de la SUBCADENA

Por ejemplo,

SUBSTRING(‘SQL Server’,5,3)

devuelve ‘Ser’., Es la secuencia de tres caracteres que comienzan en la quinta posición.

SUBSTRING es una forma generalizada de las funciones izquierda y derecha.

Extra Credit-mostrar cómo izquierda y derecha se pueden utilizar juntos para simular subcadena. Muestra tu respuesta en los comentarios a continuación.

LEFT (‘SQL Server’, 4) y SUBSTRING(‘SQL Server’,1,4) ambos devuelven los cuatro caracteres iniciales.

¡la derecha es un poco más complicada!

RIGHT (‘SQL Server’, 4) se puede escribir como subcadena(‘SQL Server’,7,4)

que dice que comience en la 7ª posición y luego devuelva los siguientes cuatro caracteres., La forma general para esto, ya que no siempre sabrá la longitud del valor, es

SUBSTRING(‘SQL Server’, LEN(‘SQL Server’)-4, 4)

Aquí hay un ejemplo usando columnas SQL.

cuyos resultados son

resultados que muestran la subcadena igual que Izquierda y derecha

superior e inferior

las funciones de cadena superior e inferior son se utiliza para devolver valores cuyos caracteres están en mayúsculas o minúsculas respectivamente.,

la forma general para la función superior es

UPPER(value)

donde el valor es la cadena con la que está trabajando.

si el valor es NULL entonces se devuelve NULL.

la forma y el comportamiento de LOWER es similar.

este es un ejemplo de la consulta:

Que devuelve

Ejemplos de uso SUPERIOR e INFERIOR

REEMPLACE

REEMPLAZAR función es útil cuando se desea encontrar uno o más caracteres en un aguijón y reemplazarlos con otros personajes., Una aplicación común es reemplazar todos los guiones’- ‘ con espacios.

Aquí está la forma general de la función REPLACE

REPLACE (value, pattern, replacement)

donde value es la cadena con la que trabajar, pattern es las porciones de la cadena que desea buscar y reemplazar, y replacement es el valor para reemplazar el patrón.

si alguno de los parámetros es NULL, REPLACE devuelve NULL.

si el patrón no se encuentra, nada se reemplaza, y el valor se devuelve en su forma original.,

en los negocios, encontrará datos de dos sistemas separados, como sus sistemas y los sistemas de un cliente o proveedor donde los datos se tratan de manera diferente. Esto puede causar problemas, especialmente cuando se trata de emparejar.

Una vez que el problema común que he visto ocurre con los números de parte. Considera Que La Aventura Funciona. Dentro de la compañía, los números de parte están formateados con guiones, como ‘AR-5381’; sin embargo, algunos Proveedores han reemplazado los guiones con espacios como ‘AR 5381’.,

antes de hacer una coincidencia de datos a gran escala, el equipo de producción desea proporcionar a los proveedores nuestra lista de piezas con los guiones reemplazados por espacios.

Aquí hay una consulta que podríamos ejecutar para hacerlo:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-',' ') as SupplierProductNumberFROM Production.Product

y el resultado que podemos proporcionar a los proveedores es:

aunque no puede tener un patrón en blanco, y si lo piensa, eso no tendría demasiado sentido, puede reemplazar un patrón con un patrón en blanco valor. ¿Por qué? Bueno, una buena razón es quitar caracteres de una cadena.,

en el ejemplo ProductNumber, puede haber casos en los que queramos usar el número de producto sin guiones. Esta consulta podría usarse en ese caso:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-','') as SupplierProductNumberFROM Production.Product

observe que dos comillas simples juntas como » representan una cadena vacía.

LTRIM y RTRIM

LTRIM y RTRIM se utilizan para eliminar los espacios iniciales y finales de la cadena.

LTRIM se usa para eliminar espacios del principio de la cadena; mientras que RTRIM elimina espacios del final.

la forma general para LTRIM es

LTRIM(value)

donde value es la cadena con la que desea trabajar., Si el valor es NULL, entonces se devuelve NULL.

Por ejemplo, considere

SELECT LTRIM(' Product Types')

Que devuelve ‘Tipos de Producto’

Si desea quitar los espacios desde el principio y fin de una cadena se puede usar ambas funciones.

SELECT RTRIM(LTRIM(' Product Types '))

Elimina los espacios iniciales y finales.

estas funciones son útiles al importar datos de archivos de texto, especialmente archivos con formato fijo.

Deja una respuesta

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