CHARINDEX (Transact-SQL)

Devuelve la posición inicial de la expresión especificada en una cadena de caracteres.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

CHARINDEX ( expression1 ,expression2 [ , start_location ] ) 

Argumentos

  • expression1
    Es una expresión que contiene la secuencia de caracteres que se desea buscar. expression1 es una expresión de la categoría del tipo de datos cadena de caracteres.
  • expression2
    Es una expresión, normalmente una columna, en la que se busca la secuencia especificada. La categoría del tipo de datos de expression2es cadena de caracteres.
  • start_location
    Es la posición del carácter para empezar la búsqueda de expression1 en expression2. Si no se especifica el parámetro start_location, es un número negativo o es igual a cero, la búsqueda comienza al principio de expression2. start_location puede ser de tipo bigint.

Tipos de valor devueltos

bigint si expression2 tiene el tipo de datos varchar(max), nvarchar(max) o varbinary(max); en caso contrario, int.

Notas

Si uno de los parámetros expression1 o expression2 es de tipo de datos Unicode (nvarchar o nchar) y el otro no, la expresión que no sea de tipo Unicode se convierte en Unicode. CHARINDEX no se puede usar con los tipos de datos text, ntext o image.

Si expression1 o expression2 son de tipo NULL, CHARINDEX devuelve NULL cuando el nivel de compatibilidad de la base de datos es 70 o superior. Si el nivel de compatibilidad de la base de datos es 65 o inferior, CHARINDEX devuelve NULL sólo cuando los dos parámetros expression1 y expression2 son NULL.

Si expression1 no se encuentra en expression2, CHARINDEX devuelve 0.

CHARINDEX realiza comparaciones basadas en la intercalación de la entrada. Para realizar una comparación de una intercalación especificada, puede utilizar COLLATE para aplicar una intercalación explícita a la entrada.

La posición inicial devuelta es de base 1, no de base 0.

Ejemplos

El siguiente ejemplo de código devuelve la posición en la que empieza la secuencia de caracteres bicycle en la columna DocumentSummary de la tabla Document.

USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO

Éste es el conjunto de resultados.

----------- 
48          

En el siguiente ejemplo se utiliza el parámetro opcional start_location para empezar la búsqueda de bicycle en el quinto carácter de la columna DocumentSummary.

USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary, 5)
FROM Production.Document
WHERE DocumentID = 3;
GO

Éste es el conjunto de resultados.

----------- 
48          

(1 row(s) affected)

En el siguiente ejemplo se muestra el conjunto de resultados cuando el parámetro expression1 no se encuentra en expression2.

USE AdventureWorks;
GO
SELECT CHARINDEX('bike', DocumentSummary)
FROM Production.Document
WHERE DocumentID =6;
GO

Éste es el conjunto de resultados.

----------- 
0          

(1 row(s) affected)

El siguiente ejemplo utiliza la función COLLATE.

USE tempdb;
GO
SELECT CHARINDEX ( 'Test', 'Das ist ein Test'  COLLATE Latin1_General_BIN);
GO

Vea también

Referencia

+ (Concatenación de cadenas) (Transact-SQL)
Funciones de cadena (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005