Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Esta função procura uma expressão de caractere dentro de uma segunda expressão de caractere, retornando a posição inicial da primeira expressão, se encontrada.
Transact-SQL convenções de sintaxe
Sintaxe
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
Arguments
expressionToFind
Uma expressão de caractere que contém a sequência a ser localizada. expressionToFind tem um limite de 8.000 caracteres.
expressionToSearch
Uma expressão de caractere para pesquisar.
start_location
Uma expressão inteira ou bigint na qual a pesquisa é iniciada. Se start_location não for especificado, tiver um valor negativo ou tiver um valor zero (0), a pesquisa começará no início de expressionToSearch.
Tipos de devolução
bigint se expressionToSearch tiver um tipo de dados nvarchar(max), varbinary(max) ou varchar(max ); int de outra forma.
Observações
Se a expressão expressionToFind ou expressionToSearch tiver um tipo de dados Unicode (nchar ou nvarchar) e a outra expressão não, a CHARINDEX função converte essa outra expressão em um tipo de dados Unicode.
CHARINDEX não pode ser usado com tipos de dados de imagem, ntext ou texto .
Se a expressão expressionToFind ou expressionToSearch tiver um NULL valor, CHARINDEX retornará NULL.
Se CHARINDEX não encontrar expressionToFind em expressionToSearch, CHARINDEX retornará 0.
CHARINDEX Realiza comparações com base no agrupamento de entrada. Para executar uma comparação em um agrupamento especificado, use COLLATE para aplicar um agrupamento explícito à entrada.
A posição inicial retornada é baseada em 1, não em 0.
0x0000 (char(0)) é um caractere indefinido em agrupamentos do Windows e não pode ser incluído no CHARINDEX.
Caracteres suplementares (pares substitutos)
Ao usar agrupamentos de caracteres suplementares (SC), tanto start_location quanto o valor de retorno contam pares substitutos como um caractere, não dois. Para obter mais informações, consulte Suporte a agrupamento e Unicode.
Examples
Um. Retornar a posição inicial de uma expressão
Este exemplo procura bicycle na variável @documentde valor da cadeia de caracteres pesquisada .
DECLARE @document AS VARCHAR (64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('bicycle', @document);
GO
Aqui está o conjunto de resultados.
-----------
48
B. Pesquisar a partir de uma posição específica
Este exemplo usa o parâmetro start_location opcional para iniciar a pesquisa no vital quinto caractere da variável @documentde valor da cadeia de caracteres pesquisada.
DECLARE @document AS VARCHAR (64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('vital', @document, 5);
GO
Aqui está o conjunto de resultados.
-----------
16
C. Procurar uma expressão inexistente
Este exemplo mostra o conjunto de resultados quando CHARINDEX não encontra expressionToFind em expressionToSearch.
DECLARE @document AS VARCHAR (64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('bike', @document);
GO
Aqui está o conjunto de resultados.
-----------
0
D. Realizar uma pesquisa que diferencia maiúsculas de minúsculas
Este exemplo mostra uma pesquisa que diferencia maiúsculas de minúsculas para a cadeia de caracteres TEST pesquisada This is a Test.
USE tempdb;
GO
--perform a case sensitive search
SELECT CHARINDEX('TEST', 'This is a Test' COLLATE Latin1_General_CS_AS);
Aqui está o conjunto de resultados.
-----------
0
Este exemplo mostra uma pesquisa que diferencia maiúsculas de minúsculas para a cadeia de caracteres Test pesquisada This is a Test.
USE tempdb;
GO
SELECT CHARINDEX('Test', 'This is a Test' COLLATE Latin1_General_CS_AS);
Aqui está o conjunto de resultados.
-----------
11
E. Realizar uma pesquisa que não diferencia maiúsculas de minúsculas
Este exemplo mostra uma pesquisa que não diferencia maiúsculas de minúsculas para a cadeia de caracteres TEST pesquisada This is a Test.
USE tempdb;
GO
SELECT CHARINDEX('TEST', 'This is a Test' COLLATE Latin1_General_CI_AS);
GO
Aqui está o conjunto de resultados.
-----------
11
Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)
F. Pesquisar desde o início de uma expressão de cadeia de caracteres
Este exemplo retorna o primeiro local da cadeia de caracteres is em string This is a string, começando a partir da posição 1 (o primeiro caractere) de This is a string.
SELECT CHARINDEX('is', 'This is a string');
Aqui está o conjunto de resultados.
---------
3
G. Pesquisar a partir de uma posição diferente da primeira posição
Este exemplo retorna o primeiro local da cadeia de caracteres is em string This is a string, iniciando a pesquisa a partir da posição 4 (o quarto caractere).
SELECT CHARINDEX('is', 'This is a string', 4);
Aqui está o conjunto de resultados.
---------
6
H. Resultados quando a cadeia de caracteres não é encontrada
Este exemplo mostra o valor de retorno quando CHARINDEX não encontra string_pattern de cadeia de caracteres na cadeia de caracteres pesquisada.
SELECT TOP (1) CHARINDEX('at', 'This is a string')
FROM dbo.DimCustomer;
Aqui está o conjunto de resultados.
---------
0