Articles

Función PATINDEX de SQL Server

Resumen: en este tutorial, ha aprendido a usar la función SQL Server PATINDEX() para encontrar la posición de un patrón en una cadena.

Descripción general de SQL Server PATINDEX ()

La función PATINDEX() devuelve la posición de la primera aparición de un patrón en una cadena. La sintaxis de la etiqueta PATINDEX() función es como sigue:

PATINDEX ( '%pattern%' , input_string )
Code language: SQL (Structured Query Language) (sql)

El PATINDEX() función acepta dos argumentos:

  • pattern es una expresión de caracteres que se puede encontrar. Puede contener caracteres comodín como % y '_' en el patrón. Los significados de los comodines son los mismos que se usan con el operador LIKE.
  • input_string es una cadena de caracteres en la que se busca el patrón.

El PATINDEX() devuelve un entero que especifica la posición de la primera aparición del pattern en el input_string, o el cero del patrón no encontrado. El PATINDEX() función devuelve NULL si pattern o input_string es NULO.

Tenga en cuenta que PATINDEX() busca el patrón en función de la intercalación de la entrada. Si desea utilizar una intercalación específica, puede utilizar la cláusula COLLATE explícitamente.

Ejemplos de funciones PATINDEX() de SQL Server

Veamos algunos ejemplos de uso de la función PATINDEX().

A) SQL Server PATINDEX () ejemplo simple

Este ejemplo devuelve la posición inicial de la subcadena 'ern' en la cadena 'SQL Pattern Index':

SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

position-----------9(1 row affected)

B) Uso de SQL Server PATINDEX() con varios comodines ejemplo

Este ejemplo utiliza % y _ comodines para encontrar la posición en la que el patrón 'f', seguido de dos caracteres cualesquiera y 'ction' comienza en la cadena 'SQL Server String Function':

SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
Code language: SQL (Structured Query Language) (sql)

La salida es la siguiente:

Position-----------19(1 row affected)

C) Usando la función PATINDEX() de SQL Server con ejemplo de columna de tabla

Este ejemplo encuentra la posición de la primera aparición del patrón 2018 en los valores de la columna product_name en la columna de la base de datos de ejemplo.

SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
Code language: SQL (Structured Query Language) (sql)

La siguiente imagen muestra la salida parcial:

SQL Server PATINDEX Función de Ejemplo

En este tutorial, usted ha aprendido a utilizar el SQL Server PATINDEX() función para encontrar la posición de la primera ocurrencia de un patrón en una cadena.