Menú
Está libre
registro
hogar  /  Multimedia/ Funciones de cadena SQL. Combinando funciones de cadena en operaciones de cadena Transact-SQL en transact sql

Funciones de cadena SQL. Combinando funciones de cadena en operaciones de cadena Transact-SQL en transact sql

Del libro Registro de Windows autor Klimov A

Finalización rápida Trabajo de Windows(Windows NT / 2000 / XP) Las versiones 3.1 y 3.5 de Windows NT permitieron cerrar todos los procesos en 20 segundos. En Windows NT 3.51 y posteriores, es posible definir el intervalo durante el cual el sistema debe apagarse. Para hacer esto, necesitas arreglar la clave.

Del libro Manejo de bases de datos con Visual Basic® .NET el autor McManus Jeffrey P

CAPÍTULO 3 Introducción a SQL Server 2000 En el pasado, muchos programadores comenzaron a crear aplicaciones de bases de datos utilizando Visual Basic y una base de datos Microsoft Access Jet. Tan pronto como la base de datos creció a varios miles de registros o varios

Del libro Windows Script Host para Windows 2000 / XP el autor Popov Andrey Vladimirovich

Requisitos para instalar SQL Server 2000 La instalación de SQL Server 2000 requiere una computadora con un procesador Pentium (o compatible) con una frecuencia de al menos 166 MHz, espacio en el disco duro de 95 a 270 MB (270 MB para una instalación típica y 44 MB para una Desktop Engine), disquetera

Del libro What They Don't Write About in Delphi Books el autor Grigoriev A.B.

Instalación de SQL Server 2000 Después de seleccionar la computadora con la configuración requerida, puede continuar con la instalación. En general, el proceso de instalación de SQL Server 2000 es muy simple, con la excepción de lo siguiente: lleva mucho tiempo; durante el proceso de instalación, se configura mucho para la primera

Del libro PHP Author's Reference

Conceptos básicos de SQL Server 2000 Después de instalar e iniciar SQL Server, debe completar los siguientes pasos antes de poder recuperar o guardar datos: Cree una o más bases de datos. crear tablas en la base de datos; crear vistas y almacenar

Del libro XSLT el autor Stephen Holzner

Funciones para trabajar con matrices A2.17 muestra las funciones con las que se pueden crear nuevas matrices y obtener información sobre las existentes Tabla A2.17. Funciones para trabajar con matrices Función Descripción Matriz (arglist) Devuelve una variante que es

Del libro de Linux: La guía completa el autor Kolisnichenko Denis Nikolaevich

3.3. Sutilezas de trabajar con cadenas En esta sección, veremos algunas sutilezas de trabajar con cadenas, que le permiten comprender mejor qué código genera el compilador para algunas acciones aparentemente elementales. No todos los ejemplos dados aquí funcionan de manera diferente a

Del libro The Art of Programming in Shell Scripting Language por Cooper Mendel

Del libro Lenguaje C - Guía para principiantes por Prata Stephen

Funciones XPath para trabajar con cadenas Las siguientes funciones XPath para trabajar con cadenas están disponibles en XSLT: concat (cadena cadena1, cadena cadena2, ...). Devuelve la concatenación (unión) de todas las cadenas que se le pasan; contiene (cadena cadena1, cadena cadena2). Devuelve verdadero si la primera línea contiene (contiene) la segunda

Del libro Linux y UNIX: Shell Programming. Guía del desarrollador. por Teinsley David

23.2.2. Funciones de memoria Las funciones de memoria de la biblioteca Glib hacen lo mismo que las funciones correspondientes de C. Aquí están sus prototipos: gpointer g_malloc (tamaño de gulong); gpointer g_realloc (gpointer mem, tamaño de gulong); void g_free (gpointer

Del libro Descripción del lenguaje PascalABC.NET el autor Equipo RuBoard

Del libro del autor

13. Cadenas de caracteres y funciones en cadenas INICIALIZACIÓN DE CARACTERES DE CADENAS DE CARACTERES

Del libro del autor

FUNCIONES QUE TRABAJAN CON LINE La mayoría de las bibliotecas de C tienen funciones que funcionan con cadenas. Veamos cuatro de los más útiles y comunes: strlen (), strcat (), strcmp () y strcpy (). Ya hemos usado la función strlen (), que encuentra la longitud de una cadena.

Del libro del autor

Del libro del autor

Las rutinas para trabajar con caracteres y cadenas funcionan Chr (a: byte): char; Convertir código a la función de caracteres codificados de Windows ChrUnicode (a: word): char; Convierte un código en una función de carácter Unicode OrdUnicode (a: char): word; Convierte un carácter en código Unicode función UpperCase (ch: char): char;

Del libro del autor

Funciones para trabajar con color El tipo de color Color es sinónimo de System.Drawing.Color. función RGB (r, g, b: byte): Color; Devuelve un color que contiene componentes rojo (r), verde (g) y azul (b) (r, gyb están en el rango de 0 a 255) función ARGB (a, r, g, b: byte): Color; Devuelve el color que contiene

Aquí hay una lista completa de funciones de cadena tomadas de BOL:

Resultado - 11. Para averiguar qué letras son, podemos usar la función CHAR, que devuelve un carácter usando un código ASCII conocido (de 0 a 255):

Y así es como, por ejemplo, puede obtener una tabla de códigos de todos los caracteres alfabéticos:

SELECT CHAR (ASCII ("a") + num-1) letra, ASCII ("a") + num - 1 FROM (SELECT 5 * 5 * (a-1) + 5 * (b-1) + c AS num DESDE (SELECCIONAR 1 a UNIÓN TODO SELECCIONAR 2 UNIÓN TODO SELECCIONAR 3 UNIÓN TODO SELECCIONAR 4 UNIÓN TODO SELECCIONAR 5) x UNIÓN CRUZADA (SELECCIONAR 1 b UNIÓN TODO SELECCIONAR 2 UNIÓN TODO SELECCIONAR 3 UNIÓN TODO SELECCIONAR 4 UNIÓN TODO SELECCIONAR 5) y UNIÓN CRUZADA ( SELECCIONAR 1 c UNION TODO SELECCIONAR 2 UNION TODO SELECCIONAR 3 UNION TODO SELECCIONAR 4 UNION TODO SELECCIONAR 5) z) x DONDE ASCII ("a") + num -1 ENTRE ASCII ("a") Y ASCII ("z")

Para aquellos que aún no conocen la generación de una secuencia numérica, les remito al artículo correspondiente.

Como sabe, los códigos para letras minúsculas y mayúsculas son diferentes. Por lo tanto, para obtener un conjunto completo sin reescribir la consulta, solo necesita agregar uno similar al código anterior:

Supongo que no será difícil agregar esta letra a la tabla si es necesario.

Considere ahora el problema de encontrar la subcadena deseada en una expresión de cadena. Hay dos funciones que se pueden utilizar para esto: CHARINDEX y PATINDEX... Ambos devuelven la posición inicial (posición del primer carácter de la subcadena) de la subcadena en la cadena. La función CHARINDEX tiene la sintaxis:

CHARINDEX ( lookup_expression, string_expression[, Posición de salida])

Aquí hay un parámetro de número entero opcional Posición de salida define la posición en la expresión de cadena desde la que se realiza la búsqueda lookup_expression... Si se omite este parámetro, la búsqueda se realiza desde el principio string_expression... Por ejemplo, la solicitud

Cabe señalar que si la subcadena o expresión de cadena deseada es NULL, el resultado de la función también será NULL.

El siguiente ejemplo define las posiciones de la primera y segunda aparición del carácter "a" en el nombre del barco "California".

Y aquí, por ejemplo, cómo se pueden encontrar los nombres de los barcos que contienen una secuencia de tres caracteres, el primero y el último de los cuales es "e":

Cuarto de vapor IZQUIERDA función DERECHA devuelve el número especificado de caracteres a la derecha de una expresión de cadena:

DERECHA (<expresión de cadena>,<número de caracteres>)

Por ejemplo, así es como puede identificar los nombres de los barcos que comienzan y terminan con la misma letra:

Aquí separamos el nombre de la clase y el nombre del barco con un espacio. Además, para no repetir toda la construcción como argumento de una función, usamos una subconsulta. El resultado se verá así:

Para eliminar este caso, puede utilizar otra función útil LEN (<expresión de cadena>) que devuelve el número de caracteres de la cadena. Limitémonos al caso en el que el número de caracteres es más de uno:

Función REPRODUCIR EXACTAMENTE rellenar la constante "abcde" con cinco espacios a la derecha, que la función no tiene en cuenta LEN, - en ambos casos obtenemos 5.
Función LONGITUD DE DATOS devuelve el número de bytes en la representación de una variable y nos muestra la diferencia entre CHAR y VARCHAR. LONGITUD DE DATOS nos dará 12 para CHAR y 10 para VARCHAR.
Como se esperaba, LONGITUD DE DATOS devolvió la longitud real de la variable para una variable VARCHAR. Pero, ¿por qué el resultado es igual a 12 para una variable de tipo CHAR? El punto es que CHAR es un tipo longitud fija... Si el valor de la variable es menor que su longitud, y declaramos la longitud como CHAR (12), entonces el valor de la variable se "alineará" con la longitud requerida agregando espacios finales.

Hay tareas en el sitio en las que necesita ordenar (encontrar el máximo, etc.) en orden numérico los valores presentados en formato de texto... Por ejemplo, el número de asiento del avión ("2d") o la velocidad del CD ("24x"). El problema es que el texto está ordenado así (ascendente)

Si es necesario organizar los lugares en orden ascendente de filas, entonces el orden debe ser el siguiente

Si solo nos limitamos a esto, entonces obtenemos

Queda por ordenar

Seguimos aprendiendo el idioma Consultas 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 ( puede utilizar cualquier carácter, como un 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

Además, también hay un función útil, INITCAP- que devuelve el valor en una cadena en la que cada palabra comienza con una letra mayúscula y continúa con letras minúsculas. Esto es necesario si no sigue las reglas de llenado en una columna en particular y para mostrar todo en hermosa forma puede usar esta función, por ejemplo, tiene el siguiente formulario en la columna de nombre de la tabla: IVAN ivanov o petr petrov, usa 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 —————-
Sergey -----

Función LTRIM

Next 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". Simplemente especifica algún tipo de patrón "g". y si los caracteres de la izquierda 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 se buscan caracteres a la derecha.

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

Función REEMPLAZAR

Ahora considera esto función interesante cómo REEMPLAZAR: devuelve una cadena en la que todas las coincidencias de caracteres se reemplazan por 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 una 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

SUBSTResta 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 LARGO- 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. En artículos futuros, continuaremos nuestra exploración de SQL.

Las funciones de Transact-SQL pueden ser agregadas o escalares. Estos tipos de funciones se tratan en este artículo.

Funciones agregadas

Las funciones agregadas realizan cálculos en un grupo de valores de columna y siempre devuelven un solo valor de esos cálculos. Transact-SQL admite varias funciones agregadas comunes:

AVG

Calcula la media aritmética de los datos en una columna. Los valores que se calculan deben ser numéricos.

MIN y MAX

Determine el valor máximo y mínimo de todos los valores de datos contenidos en la columna. Los valores pueden ser numéricos, de cadena o de hora (fecha / hora).

SUMA

Calcula el total de los valores en una columna. Los valores que se evalúan deben ser numéricos.

CONTAR

Cuenta el número de valores no nulos en una columna. La función count (*) es la única función agregada que no realiza cálculos en columnas. Esta función devuelve el número de filas (independientemente de si las columnas individuales contienen valores nulos).

COUNT_BIG

Similar a la función de conteo, con la diferencia de que devuelve un valor de datos BIGINT.

El uso de funciones agregadas regulares en una instrucción SELECT se tratará en un artículo futuro.

Funciones escalares

Las funciones escalares de Transact-SQL se utilizan en la creación de expresiones escalares. (Una función escalar realiza cálculos en un solo valor o lista de valores, mientras que una función agregada realiza cálculos en un grupo de valores de varias filas). Las funciones escalares se pueden clasificar de la siguiente manera:

    funciones numéricas;

    funciones de fecha;

    funciones de cadena;

    funciones del sistema;

    funciones de metadatos.

Estos tipos de funciones se tratan en las siguientes secciones.

Funciones numéricas

Las funciones numéricas Transact-SQL son funciones matemáticas para modificar valores numéricos. En la siguiente tabla se proporciona una lista de funciones numéricas y su breve descripción:

Funciones numéricas de Transact-SQL
Función Sintaxis Descripción Ejemplo de uso
abdominales ABS (n)

Devuelve el valor absoluto (es decir, los valores negativos se devuelven como positivos) de la expresión numérica n.

SELECT ABS (-5.320) - Devuelve 5.320 SELECT ABS (8.90) - Devuelve 8.90

ACOS, ASIN, ATAN, ATN2 ACOS (n), ASIN (n), ATAN (n), ATN2 (n, m)

Funciones trigonométricas inversas que calculan el coseno inverso, el seno inverso y la arcangente del valor de n (para ATN2, se calcula la arcangente de n / m). Los valores originales n, my el resultado son del tipo de datos FLOAT.

COS, SIN, TAN, COT COS (n), SIN (n), TAN (n), COT (n)

Funciones trigonométricas que calculan el coseno, seno, tangente, cotangente del valor de n. El resultado es del tipo de datos FLOAT.

GRADOS, RADIANOS GRADOS (n), RADIANOS (n)

La función DEGREES convierte radianes a grados, RADIANS viceversa.

SELECT DEGREES (PI () / 4) - Devuelve 45 SELECT COS (RADIANS (60.0)) - Devuelve 0.5

TECHO TECHO (n)

Redondea un número a un valor entero mayor.

SELECCIONAR TECHO (-5.320) - Devuelve -5 SELECCIONAR TECHO (8.90) - Devuelve 9

RONDA REDONDA (n, p, [t])

Redondea n a la p más cercana. Cuando p es un número positivo, la parte fraccionaria de n se redondea y cuando es negativo, la parte entera se redondea. Cuando se usa el argumento opcional t, el número n no se redondea, sino que se trunca (es decir, se redondea hacia abajo).

SELECT ROUND (5.3208, 3) - Devuelve 5.3210 SELECT ROUND (125.384, -1) - Devuelve 130.000 SELECT ROUND (125.384, -1, 1) - Devuelve 120.000

SUELO PISO (n)

Redondea hacia abajo al valor entero más pequeño.

SELECCIONAR PISO (5.88) - Devuelve 5

Exp CAD (n)

Calcula el valor de e n.

REGISTRO, LOG10 LOG (n), LOG10 (n)

LOG (n): calcula el logaritmo natural (es decir, base e) de n, LOG10 (n): calcula el logaritmo decimal (base 10) de n.

Pi PI ()

Devuelve π (3,1415)

PODER POTENCIA (x, y)

Calcula el valor x y.

ALEATORIO ALEATORIO ()

Devuelve un número arbitrario de tipo FLOAT en el rango de valores entre 0 y 1.

ROWCOUNT_BIG ROWCOUNT_BIG ()

Devuelve el número de filas de la tabla que fueron procesadas por la última instrucción Transact-SQL ejecutada por el sistema. El valor de retorno es de tipo BIGINT.

FIRMAR FIRMA (n)

Devuelve el signo del valor n como un número: +1 si es positivo, -1 si es negativo.

CUADRADO, CUADRADO CUADRADO (n), CUADRADO (n)

SQRT (n): calcula la raíz cuadrada de n, CUADRADO (n): devuelve el cuadrado del argumento n.

Funciones de fecha

Las funciones de fecha evalúan las partes correspondientes de la fecha o la hora de una expresión, o devuelven un valor de intervalo de tiempo. Las funciones de fecha admitidas por Transact-SQL y sus breves descripciones se muestran en la siguiente tabla:

Funciones de fecha de Transact-SQL
Función Sintaxis Descripción Ejemplo de uso
OBTENER LA FECHA OBTENER LA FECHA ()

Devuelve la fecha y hora actual del sistema.

SELECCIONAR GETDATE ()

DATEPART DATEPART (artículo, fecha)

Devuelve la parte de la fecha especificada en el parámetro del elemento como un número entero.

Devuelve 1 (enero) SELECT DATEPART (mes, "01/01/2012") - Devuelve 4 (miércoles) SELECT DATEPART (día de la semana, "01/02/2012")

DATENAME DATENAME (artículo, fecha)

Devuelve la parte de la fecha especificada en el parámetro del elemento como una cadena de caracteres.

Devuelve enero SELECT DATENAME (mes, "01/01/2012") - Devuelve miércoles SELECT DATENAME (día de la semana, "01/02/2012")

DATEDIFF DATEDIFF (elemento, dat1, dat2)

Calcula la diferencia entre las dos partes de las fechas dat1 y dat2 y devuelve un resultado entero en las unidades especificadas en el argumento del elemento.

Devuelve 19 (intervalo de 19 años entre fechas) SELECT DATEDIFF (año, "01/01/1990", "01/01/2010") - Devuelve 7305 (intervalo de 7305 días entre fechas) SELECT DATEDIFF (día, "01/01 / 1990 "," 01/01 .2010 ")

DATEADD DATEADD (artículo, n, fecha)

Agrega n-ésimo número las unidades especificadas en el argumento del artículo en la fecha especificada. (El valor de n también puede ser negativo).

Agregue 3 días a la fecha actual SELECT DATEADD (día, 3, GETDATE ())

Funciones de cadena

Las funciones de cadena manipulan los valores de las columnas, que normalmente son del tipo de datos de caracteres. Las funciones de cadena admitidas en Transact-SQL y su breve descripción se muestran en la siguiente tabla:

Funciones de cadena Transact-SQL
Función Sintaxis Descripción Ejemplo de uso
ASCII, UNICODE ASCII (carácter), UNICODE (carácter)

Convierte el carácter especificado en el entero ASCII correspondiente.

SELECCIONAR ASCII ("W") - 87 SELECCIONAR UNICODE ("u") - 1102

CHAR, NCHAR CHAR (int), NCHAR (int)

Convierte el código ASCII (o Unicode si es NCHAR) al carácter correspondiente.

SELECT CHAR (87) - "W" SELECT NCHAR (1102) - "u"

CHARINDEX CHARINDEX (cadena1, cadena2)

Devuelve la posición inicial de la aparición de la subcadena str1 en la cadena str2. Si la cadena str2 no contiene la subcadena str1, el valor de retorno es 0

Devuelve 5 SELECT CHARINDEX ("morph", "polimorfismo")

DIFERENCIA DIFERENCIA (str1, str2)

Devuelve un número entero de 0 a 4 que es la diferencia entre los valores SOUNDEX de las dos cadenas str1 y str2. El método SOUNDEX devuelve un número que caracteriza el sonido de la cuerda. Con este método, puede identificar cuerdas con un sonido similar. Funciona solo para caracteres ASCII.

Devuelve 2 SELECCIONAR DIFERENCIA ("ortografía", "decir")

IZQUIERDA DERECHA IZQUIERDA (str, longitud), DERECHA (str, longitud)

Devuelve el número de los primeros caracteres de la cadena str, dado por parámetro length para LEFT y los últimos caracteres de str para la función RIGHT.

DECLARE @str nvarchar (30) = "Sincronización"; - Devuelve "Synx" SELECT LEFT (@str, 4) - Devuelve "zats" SELECT RIGHT (@str, 5)

LEN LEN (str)

Devuelve el número de caracteres (no el número de bytes) de la cadena especificada en el argumento, incluidos los espacios finales.

INFERIOR SUPERIOR INFERIOR (str), SUPERIOR (str)

La función LOWER convierte todas las letras mayúsculas de str1 a minúsculas. Las letras minúsculas y otros caracteres incluidos en la cadena no se ven afectados. La función UPPER convierte todas las letras minúsculas de str a mayúsculas.

DECLARE @str nvarchar (30) = "Sincronización"; - Devuelve "SINCRONIZACIÓN" SELECCIONAR SUPERIOR (@str) - Devuelve "sincronización" SELECCIONAR INFERIOR (@str)

LTRIM, RTRIM LTRIM (cadena), RTRIM (cadena)

La función LTRIM elimina los espacios iniciales en la cadena str, RTRIM elimina los espacios al final de la cadena en consecuencia.

QUOTENAME QUOTENAME (char_string)

Devuelve una cadena Unicode delimitada para convertir la cadena de entrada en un identificador delimitado válido.

DECLARE @str nvarchar (30) = "Sincronización"; - Devuelve "[Sync]" SELECT QUOTENAME (@str)

PATINDEX PATINDEX (% p%, expr)

Devuelve la posición inicial de la primera aparición del patrón p en la expresión expr dada, o cero si no se encuentra el patrón dado.

Devuelve 4 SELECT PATINDEX ("% chro%", "Sincronización")

REEMPLAZAR REEMPLAZAR (str1, str2, str3)

Reemplaza todas las apariciones de str2 en str1 con str3.

Devuelve "Desincronización" SELECT REPLACE ("Sincronización", "Sincronización", "Desincronización")

REPRODUCIR EXACTAMENTE REPLICAR (str, i)

Repite la cadena str i veces.

Devuelve "aBaBaBaBaB" SELECT REPLICATE ("aB", 5)

MARCHA ATRÁS REVERSE (str)

Envía la cadena str en orden inverso.

Devuelve "yicazinorkhnis" SELECT REVERSE ("Sincronización")

SOUNDEX SOUNDEX (str)

Devuelve el soundex de cuatro caracteres utilizado para determinar la similitud de dos cadenas. Funciona solo para caracteres ASCII.

ESPACIO ESPACIO (largo)

Devuelve una cadena de espacios con la longitud especificada en el parámetro de longitud. Análogo de REPLICATE ("", longitud).

STR STR (f [, len [, d]])

Convierte la expresión de punto flotante f especificada en una cadena, donde len es la longitud de la cadena, incluido el punto decimal, el signo, los dígitos y los espacios (el valor predeterminado es 10), yd es el número de decimales que se devolverán.

Devuelve "3,14" SELECT STR (3,1415, 4, 2)

COSAS COSAS (str1, a, length, str2)

Elimina los caracteres de longitud de la cadena str1, comenzando en la posición a, e inserta la cadena str2 en su lugar.

Nota en un libro SELECT STUFF ("Notebook", 5, 0, "in a") - Manual SELECT STUFF ("Notebook", 1, 4, "Hand")

SUBSTRING SUBSTRING (str1, a, length)

Recupera de la cadena str, comenzando en la posición a, una subcadena de longitud length.

Funciones del sistema

Funciones del sistema Los lenguajes Transact-SQL proporcionan amplia información sobre los objetos de la base de datos. La mayoría de las funciones del sistema utilizan un identificador numérico (ID) interno que se asigna a cada objeto de la base de datos cuando se crea. A través de este identificador, el sistema puede identificar de forma única cada objeto en la base de datos.

La siguiente tabla enumera algunas de las funciones más importantes del sistema junto con sus breve descripción:

Funciones del sistema Transact-SQL
Función Sintaxis Descripción Ejemplo de uso
EMITIR CAST (w AS tipo [(longitud)]

Convierte la expresión w al tipo de datos especificado, si corresponde. El argumento w puede ser cualquier expresión válida.

Devolverá 3 SELECT CAST (3.1258 AS INT)

JUNTARSE COALESCE (a1, a2)

Devuelve el primer valor de expresión no nulo en la lista de expresiones a1, a2, ....

COL_LENGTH COL_LENGTH (obj, col)

Devuelve la longitud de la columna col del objeto de la base de datos (tabla o vista) obj.

Devuelve 4 SELECT COL_LENGTH ("Empleado", "Id")

CONVERTIR CONVERTIR (tipo [(longitud)], w)

Equivalente a la función CAST, pero los argumentos se especifican de forma diferente. Se puede utilizar con cualquier tipo de datos.

FECHA Y HORA ACTUAL FECHA Y HORA ACTUAL

Devuelve la fecha y hora actuales.

USUARIO ACTUAL USUARIO ACTUAL

Devuelve el nombre del usuario actual.

LONGITUD DE DATOS DATALENGTH (z)

Devuelve el número de bytes que ocupa la expresión z.

Esta consulta devuelve la longitud de cada campo SELECT DATALENGTH (FirstName) FROM Employee

GETANSINULL GETANSINULL ("dbname")

Devuelve 1 si el uso de valores nulos en la base de datos dbname cumple con el estándar ANSI SQL.

ES NULO ISNULL (expr, valor)

Devuelve el valor de expr si no es NULL; de lo contrario, se devuelve el valor.

ISNUMÉRICO ISNUMÉRICO (expr)

Determina si expr es un tipo numérico válido.

NEWID NEWID ()

Crea una cadena binaria única de 16 bytes para almacenar valores del tipo de datos UNIQUEIDENTIFIER.

NUEVO SECUENCIALID NEWSEQUENTIALID ()

Crea un GUID que es mayor que cualquier otro GUID generado previamente por esta función en el equipo especificado. (Esta función solo se puede utilizar como predeterminada para una columna).

NULLIF NULLIF (expr1, expr2)

Devuelve nulo si los valores de expr1 y expr2 son iguales.

La consulta devuelve NULL para el proyecto, que tiene Number = "p1" SELECT NULLIF (Number, "p1") FROM Project

PROPIEDAD DEL SERVIDOR SERVERPROPERTY (nombre de propiedad)

Obtiene información sobre las propiedades del servidor de la base de datos.

SYSTEM_USER SYSTEM_USER

Devuelve el ID del usuario actual.

USER_ID USER_ID ()

Devuelve el nombre de usuario ID de usuario. Si no se especifica ningún usuario, se devuelve el ID de usuario actual.

NOMBRE DE USUARIO NOMBRE DE USUARIO ()

Devuelve el nombre de usuario con la identificación especificada. Si no se especifica ningún identificador, se devuelve el nombre del usuario actual.

Funciones de metadatos

Básicamente, las funciones de metadatos devuelven información sobre una base de datos y objetos de base de datos específicos. La siguiente tabla resume algunas de las funciones de metadatos más importantes, junto con una breve descripción:

Funciones de metadatos de Transact-SQL
Función Sintaxis Descripción Ejemplo de uso
COL_NAME COL_NAME (tab_id, col_id)

Devuelve el nombre de la columna con el col_id especificado de la tabla con tab_id.

Devuelve el nombre de la columna "Apellido" SELECT COL_NAME (OBJECT_ID ("Empleado"), 3)

PROPIEDAD DE LA COLUMNA COLUMNPROPERTY (id, col, propiedad)

Devuelve información sobre la columna especificada.

Devuelve el valor de la propiedad PRECISION - para la columna Id de la tabla Empleado SELECT COLUMNPROPERTY (OBJECT_ID ("Empleado"), "Id", "precisión")

PROPIEDAD DE BASE DE DATOS DATABASEPROPERTY (base de datos, propiedad)

Devuelve el valor de la propiedad de la base de datos de la base de datos.

Devuelve el valor de la propiedad IsNullConcat - para la base de datos SampleDb SELECT DATABASEPROPERTY ("SampleDb", "IsNullConcat")

DB_ID DB_ID ()

Devuelve el identificador de la base de datos db_name. Si no se especifica un nombre de base de datos, se devuelve el identificador de la base de datos actual.

DB_NAME DB_NAME ()

Devuelve el nombre de la base de datos con db_id. Si no se especifica ningún identificador, se devuelve el nombre de la base de datos actual.

INDEX_COL INDEX_COL (tabla, i, no)

Devuelve el nombre de la columna indexada de la tabla tabla. La columna está indicada por el identificador de índice iy el número de posición de la columna en ese índice.

INDEXPROPIEDAD INDEXPROPERTY (obj_id, index_name, propiedad)

Devuelve las propiedades del índice o las estadísticas con nombre para el número de identificación de tabla especificado, el nombre del índice o las estadísticas y el nombre de la propiedad.

NOMBRE DEL OBJETO OBJECT_NAME (obj_id)

Devuelve el nombre del objeto de la base de datos con el identificador obj_id.

SELECCIONAR NOMBRE DE OBJETO (245575913);

OBJECT_ID OBJECT_ID (obj_name)

Devuelve el identificador de objeto obj_name de la base de datos.

Devuelve 245575913 - ID de tabla de empleados SELECT OBJECT_ID ("Empleado")

OBJETO PROPIEDAD OBJECTPROPERTY (obj_id, propiedad)

Devuelve información sobre los objetos de la base de datos actual.

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 funciones 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 líneas separadas en un 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 incluye parámetro del sistema CONCAT_NULL_YIELDS_NULL, que controla el comportamiento del sistema si 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

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 USING 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 implementación de Oracle de la función TRANSLATE 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 traduce números de una base a otra. Pero en SQL Server, la implementación de la función CONVERT es bastante rica en características y cambia el tipo de datos para la expresión, pero en todos sus otros aspectos difiere de la función CONVERT del estándar SQL 2003. La plataforma PostgreSQL no admite la 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 la función TRANSLATE no se ajusta al estándar ANSI. La función TRANSLATE se usa 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. Character_value es la cadena que se va a convertir, target_character_set es el nombre del juego de caracteres para convertir la cadena y source_character set es el juego 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 con reconocimiento del idioma nacional (NCHARJZS).

Oracle también admite otra función, también llamada TRANSLATE (sin usar palabra clave UTILIZANDO). 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. Por información adicional consulte la documentación de SQL Server. A continuación se muestra un ejemplo.

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