Cela fait partie du didacticiel Oracle SQL et contient de bons exemples, des explications sur les fonctions à une seule ligne dans Oracle Sql
Les fonctions sont des programmes qui prennent zéro ou plusieurs arguments et renvoient une seule valeur.
Les fonctions peuvent être des fonctions à une ou plusieurs lignes
Nous discuterons ici des fonctions à une seule ligne en SQL
Qu'est-ce que les fonctions à une seule ligne dans Oracle SQL ?
Les fonctions à une seule ligne sont des fonctions intégrées et incluent des fonctions de caractères, numériques, de date, de conversion et définies par l'utilisateur.
Toutes les fonctions à une seule ligne peuvent être utilisées dans des programmes SQL ou PL/SQL et peuvent être utilisées dans les clauses SELECT, WHERE et ORDER BY.
Les fonctions à une seule ligne incluent TO_CHAR, TO_DATE, UPPER, LOWER, etc.
Les fonctions à une seule ligne peuvent également être utilisées dans la clause SET de la commande UPDATE. Les fonctions à une seule ligne ne peuvent pas être utilisées dans une clause HAVING.
Examinons les différentes fonctions importantes sur une seule ligne
Fonctions des personnages dans SQL
Les fonctions de caractère sont :
LOWER(‘char’) :convertir la chaîne en minuscules
SQL> sélectionnez le nom de "EMP" ;ENAME----------BlakeClarkScottSQL> sélectionnez lower(ename) de "EMP";LOWER(ENAM----------blakeclarkscottUPPER(‘CHAR’) :convertir la chaîne en majuscule
SQL> select upper(ename) from "EMP";UPPER(ENAM----------BLAKECLARKSCOTTINITCAP(‘Char’) :renvoie une chaîne avec la première lettre de chaque mot en majuscule
SQL> select initcap(ename) from "EMP";INITCAP(EN----------BlakeClarkScottCONCAT - La fonction a une limite de deux paramètres.
SQL> select concat(ename,DEPTNO) from emp;CONCAT(ENAME,DEPTNO)------------------------------------------- ---------------------Blake10Clark10Scott20SQL> select concat(ename,empno,DEPTNO) from emp; select concat(ename,empno,DEPTNO) from emp *ERROR at line 1:ORA-00909 :nombre d'arguments invalideLENGTH :retourne la longueur de la chaîne
SQL> select ename,length(ename) from emp;ENAME LENGTH(ENAME)---------- -------------Blake 5Clark 5Scott 5LENGTHB :renvoie la longueur d'une chaîne en octets
SQL> select ename,length(ename),lengthb(ename) from emp;ENAME LENGTH(ENAME) LENGTHB(ENAME)---------- ----------- -- --------------Blake 5 5Clark 5 5Scott 5 5INSTR :renvoie l'index de la chaîne recherchée dans une chaîne,
SQL> select ename,instr(ename,'A') from emp;ENAME INSTR(ENAME,'A')---------- ------------ ----Blake 0Clark 0Scott 0SQL> select ename,instr(ename,'a') from emp;ENAME INSTR(ENAME,'A')---------- -------- --------Blake 3Clark 3Scott 0LPAD :remplir à gauche une chaîne de n caractères
SQL> select ename,lpad(ename,12) from emp;ENAME LPAD(ENAME,12)---------- ---------------- --------------------Blake BlakeClark ClarkScott ScottSQL> select ename,lpad(ename,12,'-') from emp;ENAME LPAD(ENAME,12,'- ')---------- ------------------------------------Blake - ------BlakeClark -------ClarkScott -------ScottLTRIM :supprimer les caractères de début d'une chaîne
SQL> select ltrim(' name') from dual;LTRI----nameSQL> select ltrim(' name ') from dual;LTRIM('-------nameSQL> select LTRIM('000123' , '0') de dual;LTR---123SQL> sélectionnez LTRIM('1000123', '0') de dual;LTRIM('-------1000123REMPLACER :effectuer une recherche et un remplacement de sous-chaîne
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL;Changes--------------BLACK and BLUESUBSTR – renvoie une section de chaîne spécifiée en valeurs numériques
SUBSTRB – identique à SUBSTR uniquement avec des octets
SOUNDEX – renvoie une représentation phonétique d'une chaîne
TRANSLATE – effectue une recherche et un remplacement de caractères
TRIM - caractères de début et de fin de chaîneExemples sélectionnez emp_name, concat(emp_name,dept_name), length (ename),INSTR(ename, 'A') from dept;select lower(emp_name) from employee;select upper(first_name) from emp;Comme expliqué, la fonction de ligne unique fonctionne sur chaque ligne
Connexe : Traitement du décodage Oracle SQL
Fonctions numériques en Sql
Les fonctions numériques sont :
ROUND :arrondit un nombreSQL> sélectionnez round(3.456) de dual;ROUND(3.456)------------ 3SQL> sélectionnez round(3.456,2) de dual;ROUND(3.456,2)--- ----------- 3.46TRUNC :tronque un nombre
MOD :renvoie le module, c'est-à-dire le resteSQL> sélectionne mod(4,2) depuis dual ; MOD(4,2)---------- 0SQL> sélectionne mod(4,3) de dual ; MOD(4,3)---------- 1SIGN :renvoie positif, négatif ou zéro
CEIL – renvoie le nombre immédiatement supérieurSQL> sélectionnez ceil(3.1) à partir de dual ; CEIL(3.1)---------- 4SQL> sélectionnez ceil(3) à partir de dual ; PLAFOND(3)---------- 3LOG – renvoie le logarithme
FLOOR – renvoie le nombre inférieur suivantSQL> select floor(3.1) from dual;FLOOR(3.1)---------- 3SQL> select floor(3) from dual; ÉTAGE(3)---------- 3SQRT - renvoie la racine carrée d'un nombre
Exemples SELECT SQRT(25) "Racine carrée" FROM DUAL;SELECT order_total, CEIL(order_total) FROM commandes WHERE order_id =58758;Fonctions de date d'Oracle
Les fonctions de date d'Oracle sont :
SYSDATE :renvoie la date actuelle
DUAL
MONTHS_BETWEEN (renvoie un nombre) :renvoie le nombre de mois entre deux dates
ADD_MONTHS :ajoute un nombre de mois à date
NEXT_DAY :renvoie le jour de la semaine suivant une date donnée
LAST_DAY :renvoie le dernier jour du mois
DBTIMEZONE - renvoie le fuseau horaire de la base de données
TRUNC :tronque une date.
CURRENT_TIMESTAMP - renvoie la date et l'heure au format TIMESTAMPExemples SQL> sélectionnez CURRENT_TIMESTAMP à partir du double;CURRENT_TIMESTAMP----------------------------------------- ---------------------------------01-SEP-19 04.33.26.493097 PM +00:00SQL> sélectionnez la date système à partir de double;SYSDATE---------------01-SEP-19Fonctions de conversion de type explicite
TO_CHAR -convertit le nombre ou la date en VARCHAR2
TO_NUMBER :Convertit le caractère en nombre
TO_DATE :Il convertit en dateExemples SQL> sélectionnez to_char(sysdate ,'DD-MON-YYYY,MI') from dual 2;TO_CHAR(SYSDATE,'DD---------------------01- SEP-2019,34Autres fonctions
NVL (expr1, expr2) et NVL3
NVL – prend deux arguments :NVL(x1, x2), renvoie x2 lorsque x1 est NULL ou x1 lorsque x1 n'est pas NULL. NVL2 - prend trois arguments :NVL2(x1, x2, x3), renvoie x3 lorsque x1 est NULL ou x2 lorsque x1 n'est pas NULLDECODE Cette fonction fonctionne comme une instruction IF-THEN-ELSE ou CASE.
COALESCE – renvoie la première valeur non NULL d'une liste
SYS_CONTEXT – renvoie les attributs système
UID – renvoie l'ID utilisateur numérique pour la session en coursPetit quiz pour tester les connaissances sur les fonctions à une seule ligne en SQL
Question 1 :vous utilisez des fonctions à une seule ligne dans une instruction select. Quelle fonction peut être classée comme similaire à une instruction if-then-else ?
A) sqrt( )
B) decode( )
C) rowidtochar( )
D) new_time( )Explication :
La fonction decode( ) agit comme une clause if-then-else dans vos instructions SQL. Le choix sqrt( ) est incorrect car sqrt( ) produit la
racine carrée d'un nombre. Le choix new_time( ) est incorrect car la fonction new_time( ) renvoie une nouvelle heure basée sur les valeurs spécifiées dans l'appel à cette fonction.Enfin, le choix rowidtochar() est incorrect car rowidtochar() est une fonction qui convertit les informations ROWID en informations CHAR.
Question 2 :
Vous souhaitez utiliser des fonctions à une seule ligne dans vos instructions SQL. Parmi les propositions suivantes, lesquelles sont des fonctions numériques ? (Choisissez trois des quatre.)
A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Explication :
La seule fonction non numérique dans ce list est la fonction to_number( ),
qui est une opération de conversion.Question 3 L'instruction SQL suivante provient d'une session SQL*Plus :
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
where substr(ENAME,1,1)> to_number ('V') et EMPNO> 1000
ordre par EMPNO desc, ENAME asc ;Laquelle des lignes suivantes de l'instruction select affichée dans le
bloc de code précédent contient une erreur ?A) sélectionnez decode(EMPNO, 58385, 'INACTIVE', 'ACTIVE') empno
B) from EMP
C) and EMPNO> 02000
D) where substr(ENAME,1,1 ) > to_number('S')
E) trier par EMPNO desc, ENAME asc ;Explication :(D)
Les caractères alphabétiques, tels que S, ne peuvent pas être convertis en nombres. Lorsque cette instruction est exécutée, elle produit une erreur sur cette ligne. Les
autres lignes de cette requête sont correctes telles qu'elles sont composées.
Question 4 Quelle instruction SELECT obtiendra le résultat "elloworld" à partir de la chaîne "HelloWorld" ?
A. SELECT SUBSTR('HelloWorld',1) FROM dual ;
B. SELECT INITCAP(TRIM (‘HelloWorld’, 1,1)) FROM dual ;
C. SELECT LOWER(SUBSTR('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER(TRIM (' H' FROM 'HelloWorld')) FROM double ;
Réponse :EJ'espère que vous aimez cet article sur les fonctions à une seule ligne dans SQL. Merci de nous faire part de vos commentaires
Articles connexes
Fonctions analytiques dans oracle :les fonctions analytiques Oracle calculent une valeur agrégée basée sur un groupe de lignes en utilisant la clause over partition by oracle , elles diffèrent des fonctions agrégées
rang dans oracle :RANK, DENSE_RANK et ROW_NUMBER sont analytiques oracle fonction qui sont utilisées pour classer les lignes dans le groupe de lignes appelé fenêtre
Fonction Lead dans Oracle :Découvrez la fonction LAG dans Oracle et la fonction Lead dans Oracle, comment les utiliser dans les requêtes analytiques et comment cela fonctionne dans Oracle sql
Requêtes Top-N dans Oracle :consultez cette page sur l'exploration des différentes façons de réaliser des requêtes Top-N dans Oracle et la pagination dans la base de données oracle de requête oracle.