INSTR
Parte da seção Além do Básico do Journey de SQL da Coddy — lição 8 de 27.
INSTR(haystack, needle) retorna a posição (baseada em 1) de needle em haystack, ou 0 se não estiver lá.
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Combinado com SUBSTR, é assim que você divide uma string em um separador. Para extrair a parte antes do @ em um e-mail:
SUBSTR(email, 1, INSTR(email, '@') - 1)Você está dizendo: pegue o e-mail, começando da posição 1, pela quantidade de caracteres que vierem antes do @.
Desafio
FácilTabelas e colunas disponíveis:
<strong>signups</strong>:<strong>id</strong>,<strong>email</strong>
Retorne o id e o domain de cada e-mail (tudo após o @) como domain. Assuma que cada e-mail contém exatamente um @. Ordene por id.
Folha de consulta
INSTR(haystack, needle) retorna a posição (baseada em 1) de needle em haystack, ou 0 se não for encontrado:
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Use com SUBSTR para dividir uma string em um separador:
-- Parte antes de '@'
SUBSTR(email, 1, INSTR(email, '@') - 1)
-- Parte depois de '@'
SUBSTR(email, INSTR(email, '@') + 1)Experimente você mesmo
SELECT id,
-- tudo depois do '@'
FROM signups
ORDER BY id
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Além do Básico
2Funções de String
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE e TRIMConcatenando com ||Recapitulação - Faturas