INSTR
Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 8 sur 27.
INSTR(haystack, needle) retourne la position (indexée à partir de 1) de needle dans haystack, ou 0 si elle n'y figure pas.
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Combiné avec SUBSTR, c'est ainsi que vous divisez une chaîne de caractères sur un séparateur. Pour extraire la partie avant le @ dans un e-mail :
SUBSTR(email, 1, INSTR(email, '@') - 1)Vous dites : prenez l'e-mail, en commençant à la position 1, pour autant de caractères qu'il y en a avant le @.
Défi
FacileTables et colonnes disponibles :
<strong>signups</strong>:<strong>id</strong>,<strong>email</strong>
Retournez id et le domaine de chaque e-mail (tout ce qui se trouve après le @) en tant que domain. Supposez que chaque e-mail contient exactement un @. Triez par id.
Aide-mémoire
INSTR(haystack, needle) retourne la position (indexée à partir de 1) de needle dans haystack, ou 0 s'il n'est pas trouvé :
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0À utiliser avec SUBSTR pour diviser une chaîne de caractères sur un séparateur :
-- Partie avant '@'
SUBSTR(email, 1, INSTR(email, '@') - 1)
-- Partie après '@'
SUBSTR(email, INSTR(email, '@') + 1)Essayez vous-même
SELECT id,
-- tout ce qui suit le '@'
FROM signups
ORDER BY id
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Au-delà des bases
1Logique conditionnelle
CASE WHENCASE dans ORDER BYCOALESCE pour les NULLsNULLIF et IIFRécapitulatif - Présences2Fonctions de chaînes
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE et TRIMConcaténation avec ||Récapitulatif - Factures