Dans Oracle, vous pouvez utiliser les fonctions Instr() et substr() pour intercepter une partie des caractères de la chaîne. La syntaxe est "SUBSTR('Chaîne à intercepter', position de départ de l'interception, INSTR('Chaîne à intercepter', position de départ de l'interception, INSTR('Chaîne à intercepter'). intercepté" ,'','Position de départ de la recherche','Nombre d'occurrences')-1) ".
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.
oracle intercepte une partie de la chaîne dans le champ
Utilisez les fonctions Instr() et substr() dans Oracle :
Dans Oracle, vous pouvez utiliser la fonction instr pour juger une chaîne afin de déterminer si il contient les caractères spécifiés.
La syntaxe est :
instr(sourceString,destString,start,appearPosition). instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')
où
sourceString représente la chaîne source ;
destString représente la sous-chaîne à trouver dans la chaîne source ;
start représente la position de départ de la recherche ; paramètre Facultatif, la valeur par défaut est 1 ;
lookingPosition représente le nombre d'occurrences de destString que vous souhaitez rechercher à partir du caractère source. Ce paramètre est également facultatif et la valeur par défaut est 1
Si la valeur de start est. un nombre négatif, la recherche s'effectue ensuite de droite à gauche, mais les données de position sont toujours calculées de gauche à droite.
La valeur de retour est : la position de la chaîne trouvée.
Pour la fonction instr, nous l'utilisons souvent comme ceci : trouver la position de la sous-chaîne spécifiée à partir d'une chaîne. Par exemple :
SQL> select instr('yuechaotianyuechao','ao') position from dual; POSITION ---------- 6
Commencez la recherche à partir du 7ème caractère
SQL> select instr('yuechaotianyuechao','ao', 7) position from dual; POSITION ---------- 17
Commencez à partir du 1er caractère et recherchez la deuxième occurrence de la sous-chaîne
SQL> select instr('yuechaotianyuechao','ao', 1, 2) position from dual; POSITION ---------- 17
Pour la fonction instr, nous l'utilisons souvent comme ceci : Rechercher la valeur spécifiée à partir d'un string La position de la sous-chaîne. Par exemple :
SQL> select instr('abcdefgh','de') position from dual; POSITION ---------- 4
À partir de 1, d se classe quatrième, donc 4 est renvoyé
SQL>select instr('abcdefghbc','bc',3) position from dual; POSITION ---------- 9
À partir du 3ème caractère, le troisième caractère est c, donc la recherche de bc dans la chaîne à partir de 3 renvoie 9
L'utilisation de la fonction substr consiste à obtenir la chaîne avec la position de départ et la longueur spécifiées dans la chaîne. La valeur par défaut est la sous-chaîne de la position de départ à la fin.
substr( string, start_position, [ length ] ) substr('目标字符串',开始位置,长度)
Tels que :
substr('This is a test', 6, 2) would return 'is' substr('This is a test', 6) would return 'is a test' substr('TechOnTheNet', -3, 3) would return 'Net' substr('TechOnTheNet', -6, 3) would return 'The'select substr('Thisisatest', -4, 2) value from dual
Fonction SUBSTR()
1 Utilisation : Renvoie une sous-chaîne à partir d'une expression de caractère ou d'un champ mémo donné.
2. Format de grammaire :
substr(string string, int a, int b); substr(string string, int a) ;
Format 1 :
1. chaîne La chaîne qui doit être interceptée
2. a intercepte la position de départ de la chaîne (Remarque : lorsque a est égal à 0 ou 1, elle commence à partir du premier 3. b La longueur de la chaîne à intercepter
Format 2 :
1. chaîne La chaîne à intercepter
2. a peut être compris comme interceptant tous les caractères suivants à partir du a-ème caractère chaîne.
oracle intercepte la chaîneC3411.907w15 intercepte la chaîne C3411 avant le point SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1)
SELECT SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1) FROM DUAL
Tronquez la chaîne 907w15 après le point de C3411.907w15 SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.', 1, 1)+1)
SELECT SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.', 1, 1)+1) FROM DUAL
Chaîne d'origine :
Il y a 7 "_" dans le champ d'origine. Maintenant, je veux juste retirer la chaîne après le dernier "_".
Deux étapes :
La première étape consiste à trouver le 7ème caractère "_" via la fonction Instr() :
select instr('Qfang.com Group_Brokerage Division_South China District_Shenzhen Shihua_ Sales Department_Nanshan Qianhai District_Qianhai Central Area_Qianhai Fifth Branch' ,'_', 1, 7) fdisplayname de SHENZHENJM1222.Bou :
select instr('QFang.com Group_ Brokerage Division_South China District_Shenzhen Shihua_Sales Department_Nanshan Qianhai District_Qianhai Central Area_Qianhai Fifth Branch', '_',
-1, 1) fdisplayname FROM SHENZHENJM1222.BLes deux L'effet est le même. -1 ci-dessous signifie compter le caractère de départ à partir de la droite, 1 signifie obtenir le premier "_"
Le résultat obtenu est tel qu'indiqué. dans la figure :
Étape 2, passez la fonction substr(), supprimez les champs obligatoires :
select substr(
fdisplayname,instr(fdisplayname,'_',-1,1 )+1) fdisplayname de SHENZHENJM1222.B
fdisplayname: représente le nom du champ, équivalent à une métachaîneConcentrons-nous dessus
+1+1 signifie commencer à intercepter la première chaîne après la chaîne cible "_" Jetons un coup d'œil à la situation des différents nombres :
select substr(fdisplayname,instr(fdisplayname,'_',-1,1)+1) fdisplayname de SHENZHENJM1222.B Jetons un coup d'œil à instr(fdisplayname,'_', -1,1) Que signifie 1 dans :
Tutoriel recommandé : "Tutoriel Oracle"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!