Contactos

SQL agrega caracteres al principio de la línea. Funciones de cadena SQL: ejemplos de uso. Funciones simbólicas en lenguaje sql

Seguimos estudiando el lenguaje de consulta SQL, y hoy hablaremos de Funciones de cadena SQL... Cubriremos funciones de cadena básicas y de uso común, como: INFERIOR, LTRIM, REEMPLAZAR y otros, lo consideraremos todo, por supuesto, mediante ejemplos.

SELECCIONAR nombre || apellido AS FIO FROM tabla

O, para separar con un espacio, ingrese

SELECCIONAR nombre || "" || apellido AS FIO FROM tabla

aquellos. dos barras verticales combinan dos columnas en una, y para separarlas con un espacio, pongo un espacio entre ellas ( se puede usar cualquier carácter, como guión o dos puntos) en apóstrofes y también combinado con dos barras verticales ( Transact-SQL usa + en lugar de dos barras verticales).

Función INITCAP

Luego también hay una función muy útil, INITCAP- que devuelve el valor en una cadena en la que cada palabra comienza con una letra mayúscula y continúa con minúscula. Esto es necesario si no sigue las reglas de llenado en una columna u otra y para mostrar todo en una forma hermosa, puede usar esta función, por ejemplo, en su tabla, los registros en la columna de nombre son de de la siguiente forma: IVAN ivanov o petr Petrov, está utilizando esta función.

SELECCIONE INITCAP (nombre) COMO FIO DE la tabla

Y lo conseguirás así.

Función SUPERIOR

Una función similar, solo devuelve todos los caracteres en mayúscula, esto es SUPERIOR.

SELECT UPPER (name) AS FIO FROM table

  • nombre - el nombre de la columna;
  • 20 - número de caracteres ( longitud del campo);
  • "-" es un carácter que se rellenará con el número requerido de caracteres.

Función RPAD

Consideremos la función inversa de inmediato. RPAD- la acción y la sintaxis son las mismas que para LPAD, solo se rellenan los caracteres de la derecha ( en el LPAD a la izquierda).

SELECCIONE RPAD (nombre, 20, "-") COMO nombre DESDE la tabla

Iván —————-
Sergei -----

Función LTRIM

Siguiente también es una función útil en algunos casos, LTRIM: esta función elimina los caracteres del extremo izquierdo que especifique. Por ejemplo, tiene una columna "ciudad" en su base de datos, en la que la ciudad se indica como "Moscú", y también hay ciudades que se indican simplemente como "Moscú". Pero debe mostrar el informe solo en forma de "Moscú" sin "g". Solo especifica algún tipo de patrón "g" y si los caracteres del extremo izquierdo comienzan con "g", estos caracteres simplemente no se mostrarán.

SELECCIONE LTRIM (ciudad, "ciudad") COMO gorod FROM tabla

Esta función escanea los caracteres de la izquierda, si no hay caracteres en el patrón al principio de la línea, devuelve el valor original de la celda, y si lo hay, los borra.

Función RTRIM

También echemos un vistazo a la función inversa de inmediato. RTRIM- al igual que LTRIM, solo los caracteres se buscan a la derecha.

¡Nota! En Transact-SQL, las funciones RTRIM y LTRIM eliminan espacios de derecha e izquierda, respectivamente.

Función REEMPLAZAR

Ahora veamos una función tan interesante como REEMPLAZAR: devuelve una cadena en la que todas las coincidencias de caracteres se reemplazan con los caracteres que usted especifique. Para lo que se puede utilizar, por ejemplo, tienes columnas en tu base de datos, en las que hay algunos símbolos de separación, por ejemplo "/". Por ejemplo, Ivan / Ivanov, y le gustaría mostrar Ivan-Ivanov, luego escriba

SELECCIONAR REEMPLAZAR (nombre, "/", "-") DE la tabla

y tendrás un reemplazo de símbolos.

Esta función reemplaza solo una coincidencia completa de caracteres, si, por ejemplo, especifica "-", es decir, buscará solo tres guiones y no reemplazará cada guión individual, a diferencia de la siguiente función.

Función TRADUCIR

TRADUCIR: una función de cadena que reemplaza todos los caracteres de la cadena con los caracteres que especifique. Según el nombre de la función, puede adivinar que se trata de un avance de línea completo. La diferencia entre esta función y REPLACE es que reemplaza todos los caracteres que especifique, es decir, Tienes tres caracteres, digamos abc y con la ayuda de TRANSLATE puedes reemplazarlo con abc para que tengas a = a, b = b, c = c, y de acuerdo con este principio, todas las coincidencias de caracteres serán reemplazadas. Y si reemplazó con REPLACE, entonces estaba buscando solo una coincidencia completa de los símbolos abc ubicados en una fila.

Función SUBSTR

SUBSTR: esta función devuelve solo el rango de caracteres que especifique. En otras palabras, digamos una cadena de 10 caracteres, y no necesita los diez, pero digamos que solo necesita 3-8 ( del tercero al octavo). Con esta función, puede hacer esto fácilmente. Por ejemplo, tiene un identificador en la base de datos de una longitud fija (como AA-BB-55-66-CC) y cada combinación de caracteres significa algo. Y en un buen momento te dijeron que mostraras solo 2 y 3 combinaciones de caracteres, para ello escribes una consulta de la siguiente forma.

SELECT SUBSTR (ident, "4", "8") FROM table

aquellos. imprimimos todos los caracteres, comenzando con 4 y terminando con 8, y después de esta consulta obtendrá esto:

Función LENGTH - longitud de la cadena

La siguiente función también puede ser útil, es LONGITUD- que solo cuenta el número de caracteres en una línea. Por ejemplo, necesita averiguar cuántos caracteres hay en cada celda de una columna, digamos "nombre", una tabla como esta.

SELECCIONAR LONGITUD (nombre) DE la tabla

después de esta solicitud, recibirá esto.

4
6
7

Aquí estamos con usted y examinamos las funciones básicas de cadenas de SQL. Continuaremos nuestra exploración de SQL en artículos futuros.

Funciones de cadena SQL

Este grupo de funciones le permite manipular texto. Hay muchas funciones de cadena, consideraremos las más comunes.
  • CONCAT (str1, str2 ...) Devuelve una cadena creada concatenando los argumentos (los argumentos se especifican entre paréntesis - str1, str2 ...). Por ejemplo, nuestra tabla de proveedores tiene una columna de ciudad y una columna de dirección. Supongamos que queremos que la Dirección y la Ciudad aparezcan en la misma columna de la tabla resultante, es decir, queremos combinar datos de dos columnas en una. Para hacer esto, usaremos la función de cadena CONCAT (), y como argumentos, especificaremos los nombres de las columnas combinadas - ciudad y dirección:

    SELECCIONE CONCAT (ciudad, dirección) DE los proveedores;


    Tenga en cuenta que la fusión ocurrió sin separación, lo que no es muy legible. Modifiquemos nuestra consulta para que haya un espacio entre las columnas fusionadas:

    SELECCIONE CONCAT (ciudad, "", dirección) DE los proveedores;


    Como puede ver, el espacio también se considera un argumento y está separado por comas. Si hubiera más columnas para unir, sería irracional indicar espacios cada vez. En este caso, se podría usar la función de cadena CONCAT_WS (delimitador, cadena1, cadena2 ...), que coloca un separador entre las cadenas que se van a concatenar (el separador se especifica como primer argumento). Nuestra solicitud se vería así:

    SELECCIONE CONCAT_WS ("", ciudad, dirección) DE los proveedores;

    El resultado no cambió externamente, pero si tuviéramos que concatenar 3 o 4 columnas, entonces el código se reduciría significativamente.


  • INSERTAR (str, pos, len, new_str) Devuelve la cadena str en la que la subcadena que comienza en la posición pos y la longitud len caracteres ha sido reemplazada por la subcadena new_str. Supongamos que decidimos no mostrar los primeros 3 caracteres en la columna de la dirección (abreviaturas st., Etc., etc.), luego los reemplazaremos con espacios:

    SELECCIONE INSERTAR (dirección, 1, 3, "") DE los proveedores;


    Es decir, tres caracteres, comenzando por el primero, se reemplazan por tres espacios.


  • LPAD (str, len, dop_str) Devuelve la cadena str, rellenada a la izquierda por dop_str hasta la longitud len. Supongamos que queremos que las ciudades proveedoras estén a la derecha cuando se muestran las ciudades proveedoras y llenamos el espacio vacío con puntos:

    SELECCIONE LPAD (ciudad, 15, ".") DE proveedores;



  • RPAD (str, len, dop_str) Devuelve la cadena str, rellenada a la derecha por dop_str hasta la longitud len. Supongamos que queremos que las ciudades proveedoras estén a la izquierda y que llenen el espacio vacío con puntos al mostrar las ciudades proveedoras:

    SELECCIONE RPAD (ciudad, 15, ".") DE los proveedores;


    Tenga en cuenta que len limita el número de caracteres que se mostrarán, es decir, si el nombre de la ciudad tiene más de 15 caracteres, se truncará.


  • LTRIM (str) Devuelve la cadena str con todos los espacios iniciales eliminados. Esta función de cadena es conveniente para mostrar información correctamente en los casos en que se permiten espacios aleatorios al ingresar datos:

    SELECCIONE LTRIM (ciudad) DE los proveedores;


  • RTRIM (str) Devuelve la cadena str con todos los espacios finales eliminados:

    SELECCIONE RTRIM (ciudad) DE los proveedores;

    En nuestro caso, no hubo espacios adicionales, por lo que no veremos el resultado exteriormente.


  • TRIM (str) Devuelve la cadena str con todos los espacios iniciales y finales eliminados:

    SELECCIONE EL RECORTE (ciudad) DE los proveedores;


  • LOWER (str) Devuelve la cadena str con todos los caracteres convertidos a minúsculas. No funciona correctamente con letras rusas, por lo que es mejor no usarlo. Por ejemplo, apliquemos esta función a la columna de la ciudad:

    SELECCIONE la ciudad, INFERIOR (ciudad) DE los proveedores;


    Ves qué tipo de galimatías resultó. Pero con el alfabeto latino, todo está en orden:

    SELECCIONAR INFERIOR ("CIUDAD");



  • UPPER (str) Devuelve la cadena str con todos los caracteres en mayúscula. También es mejor no usarlo con letras rusas. Pero con el alfabeto latino, todo está en orden:

    SELECCIONE LA PARTE SUPERIOR (correo electrónico) DE los clientes;



  • LENGTH (str) Devuelve la longitud de la cadena str. Por ejemplo, averigüemos cuántos caracteres hay en las direcciones de nuestros proveedores:

    SELECCIONE la dirección, LONGITUD (dirección) DE los proveedores;



  • LEFT (str, len) Devuelve len los caracteres izquierdos de la cadena str. Por ejemplo, suponga que solo se muestran los primeros tres caracteres en las ciudades proveedoras:

    SELECCIONE el nombre, IZQUIERDA (ciudad, 3) DE los proveedores;



  • RIGHT (str, len) Devuelve los caracteres len a la derecha de la cadena str. Por ejemplo, suponga que solo se muestran los últimos tres caracteres en las ciudades proveedoras: SELECT LOAD_FILE ("C: / proverka");
    Tenga en cuenta que debe especificar la ruta absoluta al archivo.

Como ya se mencionó, hay muchas más funciones de cadena, pero incluso algunas de las consideradas aquí rara vez se usan. Así que ahí es donde terminaremos nuestra revisión y pasaremos a las funciones de fecha y hora de uso más común.

Otros. Tiene la siguiente sintaxis:

CONV (número, N, M)

Argumento número está en base N. La función lo convierte en base M y devuelve el valor como una cadena.

Ejemplo 1

La siguiente consulta convierte el número decimal 2 en binario:

SELECCIONAR CONV (2,10,2);

Puesto: 10

Para convertir el número 2E de hexadecimal a decimal, se requiere la siguiente consulta:

SELECCIONAR CONV ("2E", 16.10);

Puesto: 46

Función CHAR () traduce el código ASCII en cadenas. Tiene la siguiente sintaxis:

CHAR (n1, n2, n3 ..)

Ejemplo 2

SELECCIONAR CARÁCTER (83.81.76);

Resultado: SQL

Las siguientes funciones devuelven la longitud de una cadena:

  • LONGITUD (cadena);
  • OCTET_LENGTH (cadena);
  • CHAR_LENGTH (cadena);
  • CHARACTER_LENGTH (cadena).

Ejemplo 3

SELECCIONAR LONGITUD ("MySQL");

Resultado: 5

A veces una función útil BIT_LENGTH (cadena) que devuelve la longitud de la cadena en bits.

Ejemplo 4

SELECT BIT_LENGTH ("MySQL");

Puesto: 40

Funciones para trabajar con subcadenas

Una subcadena se suele denominar parte de una cadena. A menudo es necesario averiguar la posición de la primera aparición de una subcadena en una cadena. Tres funciones resuelven este problema en MySQL:

  • LOCALIZAR (subcadena, cadena [, posición]);
  • POSICIÓN (subcadena, cadena);
  • INSTR (cadena, subcadena).

Si la subcadena no está contenida en la cadena, las tres funciones devuelven el valor 0. La función INSTR () difiere de las otras dos en el orden de sus argumentos. La función LOCATE () puede tener un tercer argumento posición, que le permite buscar una subcadena en una cadena no desde el principio, sino desde una posición específica.

Ejemplo 5

SELECCIONAR UBICACIÓN ("Topaz", "Sociedad anónima abierta Topaz");

Puesto: 31

SELECCIONAR POSICIÓN ("Topaz", "Sociedad Anónima Abierta Topaz");

Puesto: 31

SELECT INSTR ("Topaz Open Joint Stock Company", 'Topaz');

Puesto: 31

SELECCIONAR UBICACIÓN ("Topaz", "Topaz Plant y Topaz LLC", 9);

Puesto: 20

SELECCIONE UBICACIÓN ("Almaz", "Sociedad Anónima Abierta Topaz");

Resultado: 0

Funciones IZQUIERDA (cuerda, N) y DERECHA (cuerda, N) devuelve los N caracteres más a la izquierda y más a la derecha de la cadena, respectivamente.

Ejemplo 6

SELECCIONAR IZQUIERDA ("MySQL DBMS", 4);

Resultado: DBMS

SELECCIONAR DERECHA ("MySQL DBMS", 5);

Resultado: MySQL

A veces desea obtener una subcadena que comience en una posición determinada. Para ello, se utilizan las siguientes funciones:

  • SUBSTRING (cadena, posición, N);
  • MID (cuerda, posición, N).

Ambas funciones devuelven N caracteres de la cadena especificada, comenzando en la posición especificada.

Ejemplo 7

SELECT SUBSTRING ("MySQL DBMS es uno de los DBMS más populares", 6,5);

Resultado: MySQL

Cuando se trabaja con direcciones de correo electrónico y direcciones de sitios web, la función es muy útil SUBSTR_INDEX ()... La función tiene tres argumentos:

SUBSTR_INDEX (cadena, delimitador, N).

El argumento N puede ser positivo o negativo. Si es negativo, la función encuentra la enésima aparición del delimitador, contando desde la derecha. Luego devuelve la subcadena a la derecha del delimitador encontrado. Si N es positivo, la función busca la enésima aparición del delimitador de la izquierda y devuelve la subcadena a la izquierda del delimitador encontrado.

Ejemplo 8

SELECCIONE SUBSTRING_INDEX ("www.mysql.ru", ".", 2);

Resultado: www.mysql

SELECCIONE SUBSTRING_INDEX ("www.mysql.ru", ".", - 2);

Resultado: mysql.ru

Función REEMPLAZAR (cadena, subcadena1, subcadena2) le permite reemplazar todas las apariciones de subcadena1 en una cadena con subcadena2.

Los operadores y funciones de cadena básicas proporcionan una variedad de opciones y, como resultado, devuelven un valor de cadena. Algunas funciones de cadena son de dos elementos, lo que significa que pueden operar en dos cadenas al mismo tiempo. El estándar SQL 2003 admite funciones de cadena.

Operador de concatenación

SQL 2003 define el operador de concatenación (||) que concatena dos cadenas separadas en un solo valor de cadena.

Plataforma DB2

La plataforma DB2 admite el operador de concatenación SQL 2003 y su sinónimo, la función CONCAT.

Plataforma MySQL

La plataforma MySQL admite la función CONCATQ, un sinónimo del operador de concatenación SQL 2003.

Oracle y PostgreSQL

Las plataformas PostgreSQL y Oracle admiten el operador de concatenación de doble barra vertical SQL 2003.

Plataforma SQL Server

La plataforma SQL Server utiliza el signo más (+) como sinónimo del operador de concatenación de SQL 2003. SQL Server proporciona el parámetro de sistema CONCAT_NULL_YIELDS_NULL que controla el comportamiento del sistema cuando se encuentran valores NULL al concatenar valores de cadena.

/ * Sintaxis de SQL 2003 * /

stringl || cadena2 || string3

string1string2string3

/ * Para MySQL * /

CONCAT ("cadenal", "cadena2")

Si alguno de los valores concatenados está vacío, se devuelve una cadena vacía. Además, si un valor numérico está involucrado en la concatenación, se convierte implícitamente en una cadena.

SELECT CONCAT ("Mi", "mortadela", "tiene", "a", "primero", "nombre ...");

Mi mortadela tiene un nombre de pila

SELECT CONCAT ("Mi", NULL, "tiene", "primero", "nombre ...");

CONVERTIR y TRADUCIR

La función CONVERTIR cambia la visualización de una cadena de caracteres dentro de un conjunto de caracteres y colación. Por ejemplo, la función CONVERT se puede utilizar para cambiar el número de bits por carácter.

La función TRANSLATE traduce un valor de cadena de un juego de caracteres a otro. Por ejemplo, la función TRADUCIR se puede utilizar para convertir un valor del juego de caracteres en inglés al juego de caracteres kanji (japonés) o cirílico (ruso). La traducción en sí ya debe existir, ya sea la predeterminada o creada con el comando CREAR TRADUCCIÓN.

Sintaxis de SQL 2003

CONVERT (char_value USANDO character_conversion_name)

TRANSLATE (char_value USING translation_name)

La función CONVERT convierte un valor de carácter en el juego de caracteres con el nombre especificado en el parámetro character_conversion_name. La función TRANSLATE convierte un valor de carácter al juego de caracteres especificado en translation_name.

Entre las plataformas consideradas, solo Oracle admite las funciones CONVERT y TRANSLATE como se define en el estándar SQL 2003. La función TRANSLATE de Oracle es muy similar, pero no idéntica, a SQL 2003. En esta implementación, la función toma solo dos argumentos y traduce solo entre el juego de caracteres de la base de datos y el juego de caracteres de soporte del idioma nacional.

La implementación de MySQL de la función CONV solo convierte números de una base a otra. Pero en SQL Server, la implementación de la función CONVERT es muy rica en características y cambia el tipo de datos para la expresión, pero en todos los demás aspectos difiere de la función CONVERT del estándar SQL 2003. La plataforma PostgreSQL no es compatible con CONVERT y la implementación de la función TRANSLATE convierte todas las apariciones de una cadena de caracteres en cualquier otra cadena de caracteres.

DB2

La plataforma DB2 no admite la función CONVERT y el soporte para la función TRANSLATE no es compatible con ANSI. La función TRANSLATE se utiliza para convertir subcadenas y es históricamente sinónimo de la función UPPER porque la función UPPER se agregó recientemente a DB2. Si la función TRANSLATE se utiliza en DB2 con un argumento de expresión de un solo carácter, el resultado es la misma cadena convertida a mayúsculas. Si la función se usa con varios argumentos, por ejemplo, TRANSLATE (ucmo4HUK, reemplazo, coincidencia), la función convierte todos los caracteres en la fuente que también están en el parámetro de coincidencia. Cada carácter de la fuente que esté en la misma posición que el parámetro de coincidencia será reemplazado por el carácter del parámetro de reemplazo. A continuación se muestra un ejemplo.

TRANSLATE ("¡Hola, mundo!") "¡HOLA, MUNDO!"

TRANSLATE ("Hola, Mundo1", "wZ", "1W") "Hewwo, Zorwd1

MySQL

La plataforma MySQL no admite las funciones TRANSLATE y CONVERT.

Oráculo

La plataforma Oracle admite la siguiente sintaxis para las funciones CONVERT y TRANSLATE.

En la implementación de Oracle, la función CONVERT devuelve el texto de un valor de carácter, convertido al conjunto de caracteres de destino. Char_value es la cadena que se va a convertir, target_character_set es el nombre del conjunto de caracteres al que se va a convertir la cadena y source_character set es el conjunto de caracteres en el que se almacenó originalmente el valor de la cadena.

La función TRANSLATE de Oracle sigue la sintaxis ANSI, pero solo puede elegir uno de los dos juegos de caracteres: el juego de caracteres de la base de datos (CHARJCS) y el juego de caracteres admitido en el idioma nacional (NCHARJZS).

Oracle también admite otra función, también llamada TRANSLATE (sin usar la palabra clave USING). Esta función TRANSLATE no tiene nada que ver con la conversión de juegos de caracteres.

Los nombres de los conjuntos de caracteres de origen y destino se pueden pasar como constantes de cadena o como referencia a una columna de la tabla. Tenga en cuenta que al convertir una cadena en un conjunto de caracteres que no muestra todos los caracteres que se van a convertir, puede sustituir los comodines.

Oracle admite varios conjuntos de caracteres comunes, que incluyen los conjuntos US7ASCII, WE8DECDEC. WE8HP, F7DEC, WE8EBCDIC500, WE8PC850u WE8ISO8859PI. Por ejemplo:

SELECCIONE CONVERTIR ("Gro2", "US7ASCII", "WE8HP") DE DUAL;

PostgreSQL

La plataforma PostgreSQL admite la declaración ANSI CONVERT, y las conversiones aquí se pueden definir usando el comando CREATE CONVERSION. La implementación de PostgreSQL de la función TRANSLATE proporciona un conjunto extendido de funciones que le permiten convertir cualquier texto a otro texto dentro de una cadena especificada.

TRANSLATE (cadena de caracteres, from_text, to_text)

Aquí hay unos ejemplos:

SELECCIONAR TRADUCIR ("12345abcde", "5a", "XX"); "1234XXbcde" SELECCIONAR TRADUCIR (título, "Computadora", "PC") DESDE títulos DONDE tipo = "Equipo_personal" SELECCIONAR CONVERTIR ("PostgreSQL" USANDO iso_8859_1_to_utf_8) "PostgreSQL"

servidor SQL

SQL Server no admite la función TRANSLATE. La implementación de la función CONVERT en SQL Server no se ajusta al estándar SQL 2003. Esta función en SQL Server es equivalente a la función CAST.

CONVERT (tipo de datos [(longitud) | (precisión, escala)], expresión, estilo])

La cláusula de estilo se utiliza para definir el formato de la conversión de fecha. Para obtener más información, consulte la documentación de SQL Server. A continuación se muestra un ejemplo.

SELECCIONAR título, CONVERTIR (char (7), ytd_sales) DESDE títulos ORDENAR POR título IR

Hoy propongo considerar ejemplos sencillos de uso. Funciones de cadena Transact-SQL, y no solo una descripción y ejemplos de algunas funciones, sino su combinación, es decir cómo se pueden anidar entre sí, ya que para la implementación de muchas tareas, las funciones estándar no son suficientes y hay que usarlas juntas. Por eso, me gustaría mostrarles un par de ejemplos sencillos de cómo escribir este tipo de consultas.

Ya hemos examinado las funciones de cadena SQL, pero dado que las implementaciones de este lenguaje en diferentes DBMS son diferentes, por ejemplo, algunas funciones no están en Transact-SQL, pero sí en PL / PGSql, y la última vez miramos funciones de cadena que se puede usar en plpgsql y por eso hoy hablaremos específicamente sobre Transact-SQL.

Cómo se pueden combinar SUBSTRING, CHARINDEX y LEN

Y así, por ejemplo, debe buscar una parte de ella en una cadena de acuerdo con un cierto criterio y cortarla, y no solo buscar una parte del mismo tipo, sino de forma dinámica, es decir, la cadena de búsqueda será diferente para cada línea. Los ejemplos se escribirán en Management Studio SQL Server 2008.

Para ello usaremos las siguientes funciones:

  • SUBSTRING(str, start, len): esta función corta una parte de una cadena de otra cadena. Tiene tres parámetros 1. Esta es la cadena en sí; 2. La posición inicial desde la que comenzar a cortar; 3. El número de caracteres, cuántos deben cortarse.
  • CHARINDEX(cadena1, cadena2): busca cadena1 en cadena2 y devuelve el ordinal del primer carácter si se encuentra dicha cadena. Tiene un tercer parámetro opcional, con el que se puede especificar desde qué lado iniciar la búsqueda.
  • LEN(str1) es la longitud de la cadena, es decir Caracteres.

Como puede ver, aquí utilicé la declaración de variables y puede sustituir sus propios campos en la solicitud en lugar de variables. Aquí está el código en sí:

Declare @rezult como varchar (10) - cadena inicial declare @ str1 como varchar (100) - cadena de búsqueda declare @ str2 como varchar (10) set @ str1 = "Cadena de prueba para buscar otra cadena en ella" set @ str2 = "string" set @ rezult = substring (@ str1, CHARINDEX (@ str2, @ str1), LEN (@ str2)) seleccione @rezult

El punto aquí es este: usamos la función len para averiguar cuántos caracteres deben cortarse, y charindex establece la posición desde la cual comenzar a cortar y, en consecuencia, la subcadena realiza la selección en la cadena.

Cómo se pueden combinar LEFT, RIGHT y LEN

Digamos que necesita obtener los primeros caracteres en una cadena o verificar estos primeros caracteres en una cadena para ver si hay algo, por ejemplo, algún tipo de número, y su longitud es naturalmente diferente (un ejemplo de prueba, por supuesto) .

  • Izquierda(str, kol): la función corta el número especificado de caracteres de la izquierda, tiene dos parámetros, el primero es una cadena y el segundo, respectivamente, el número de caracteres;
  • Correcto(str, kol): la función corta el número especificado de caracteres de la derecha, los parámetros son los mismos.

Ahora usaremos consultas simples contra la tabla.

Primero, creemos una tabla_prueba:

CREAR TABLA (IDENTITY (1,1) NOT NULL, (18, 0) NULL, (50) NULL, CONSTRAINT CLAVE PRIMARIA CLÚSTER (ASC) CON (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCPOWS = ON) ON ) EN MARCHA

Llenémoslo con datos de prueba y escribamos las siguientes consultas:

Como comprenderá, la primera consulta es solo una selección de todas las filas (Conceptos básicos de SQL - instrucción select), y la segunda es una combinación directa de nuestras funciones, aquí está el código:

Seleccione * de test_table seleccione el número, a la izquierda (texto, LEN (número)) como str de test_table

Y si estos números estuvieran a la derecha, usaríamos la función DERECHO.

Usando Rtrim, Ltrim, Upper y Lower en combinación

Suponiendo que tiene una línea con espacios al principio y al final y, por supuesto, los eliminaría y, por ejemplo, los haría, de modo que la primera letra de esta línea se ponga en mayúscula.

  • Rtrim(str) - elimina espacios de la derecha;
  • Ltrim(str) - elimina espacios de la izquierda;
  • Superior(str) - convierte la cadena a mayúsculas;
  • Más bajo(str): convierte la cadena a minúsculas.

Como puede ver, para arreglar también usamos aquí Subcadena y Len... El significado de la consulta es simple, eliminamos espacios tanto de la derecha como de la izquierda, luego convertimos el primer carácter a mayúsculas cortándolo, luego concatenamos (operador +) este carácter con el resto de la cadena. Aquí está el código:

Declare @ str1 como varchar (100) set @ str1 = "cadena de prueba con espacios iniciales y finales" seleccione @ str1 seleccione superior (subcadena (rtrim (ltrim (@ str1))), 1,1)) + inferior (subcadena (rtrim ( ltrim (@ str1)), 2, LEN (rtrim (ltrim (@ str1))) - 1))

Por hoy, creo que es suficiente, y si te gusta programar en SQL, entonces en este sitio hemos tocado este tema tan interesante más de una vez, por ejemplo.



¿Te gustó el artículo? Compártelo