Vous êtes sur la page 1sur 4

ORACLE-SQL : Les fonctions de lignes

1. Les fonctions de caractères :

Syntaxe

Définition

Exemple

LOWER(arg)

Renvoie l’argument en minuscule

LOWER(‘SMITH’) ‘smith’

UPPER(arg)

Renvoie l’argument en majuscule.

UPPER(‘smith’) ‘SMITH’

INITCAP(arg)

Met en majuscule la première lettre de chaque mot, les lettres restantes de chaque mot sont mises en minuscule.

INITCAP(‘SMITH’) ‘Smith’

CONCAT(arg1,arg2)

Renvoie la concaténation des deux arguments. Equivalent à ||

CONCAT(‘SMITH’,’ est Clerk.’) ‘SMITH est Clerk.’

SUBSTR(arg,m[,n])

Retourne la souschaîne de l’argument qui commence de la m ème position et de longueur n

SUBSTR(‘ORACLE’,2,4) ‘RACL’ SUBSTR(‘ORACLE’,2) ‘RACLE’

LENGTH(arg)

Retourne la taille de l’argument en nombre de caractères

LENGTH(‘SQL’) 3

INSTR(arg,cc[,m][,n])

Retourne la position de la n ème occurrence de cc dans l’argument en commençant par la position m. Par défaut m et n sont mis à 1.

INSTR(‘ABCAB’,’AB’,2,2) 0 ; INSTR(‘ABCAB’,’AB’,2,1) 4 INSTR(‘ABCAB’,’BC’) 2

LPAD(arg,m[,cc])

Rembourre l’argument à gauche plusieurs fois par les caractères de cc jusqu’à ce que la taille de la chaîne retournée soit de m. Par défaut, cc est l’espace

LPAD(‘SQL’,8,‘or’) ‘ororoSQL’

RPAD(arg,m[,cc])

Rembourre l’argument à droite plusieurs fois par les caractères de cc jusqu’à ce que la taille de la chaîne retournée soit de m.

RPAD(‘SQL’,8,’or’) ‘SQLororo’

LTRIM (arg,cc)

Renvoie l’argument dont elle élague chaque caractère de cc si ce caractère se trouve à son extrémité gauche.

LTRIM(‘OPERATION’,‘ASPO’) ‘ERATION’

RTRIM(arg,cc)

Renvoie l’argument duquel elle élague chaque caractère de cc si ce caractère se trouve à son extrémité droite

RTRIM(‘OPERATION’,’ONI’) ‘OPERAT’

TRIM([LEADING|TAILING|BOTH ] cc FROM arg)

si LEADING est précisé alors la fonction est équivalente à LTRIM, si TAILING est précisé alors la fonction est équivalente à RTRIM sinon avec BOTH, l’élagage se fait des deux cotés. BOTH est considéré par défaut.

 

REPLACE (arg,cc1[,cc2])

Remplace la sous chaîne cc1 par la sous chaîne cc2 dans l’argument. Si cc2 est omise alors toutes les occurrences de cc1 sont enlevées de l’argument.

REPLACE(‘SMITH’,‘MI’,‘ABC’) ‘SABCTH’ REPLACE (‘SMITH’, ‘AX’, ‘ABC’) ‘SMITH’ REPLACE (‘SMITH’, ‘MI’) ‘STH’

2.

Les fonctions numériques :

Syntaxe

 

Définition

Exemple

ROUND(arg,n)

Arrondit l’argument à la précision n, c àd à n chiffres décimaux. Si n=0, alors l’argument est arrondi sur les unités, sinon (cas n<0) l’argument est arrondit sur le |n|+1 ème chiffre à gauche de la virgule

ROUND(46.8) 47 ROUND(46.862,1) 46.9 ROUND(46.862,2) 46.86 ROUND(46.862, 1) 50 ROUND(51.342, 2) 100 ; ROUND(49, 2) 0

TRUNC(arg,n)

Tronque l’argument à la précision n.

TRUNC(46.862,1) 46.8 TRUNC(46.862,2) 46.86 TRUNC(46.862, 1) 40 TRUNC(51.342, 2) 0 ; TRUNC(49, 2) 0

CEIL(arg)

Retourne le plus petit entier supérieur à l’argument.

CEIL(99.9) 100 CEIL( 11.1) 11

FLOOR(arg)

Retourne le plus grand entier inférieur à l’argument.

FLOOR(99.9) 99 FLOOR( 11.1) 12

POWER(arg,n)

Retourne l’argument à la puissance n.

 

EXP(arg)

Exponentielle de l’argument.

 

SQRT(arg)

Racine carré de l’argument.

 

SIGN(arg)

1 si arg <0, 1 si arg>0, 0 sinon

 

ABS(arg)

Valeur absolue de l’argument.

 

MOD(arg, n)

Argument modulo n.

 

LOG(m,arg)

Logarithme de base m de l’argument.

 

SIN(arg)

Sinus de l’argument.

 

COS(arg)

Cosinus de l’argument.

 

3.

Les opérations et les fonctions de Date :

 

Syntaxe

Définition

Exemple

SYSDATE

Retourne la date et l’heure système.

SELECT SYSDATE FROM DUAL; ‘21 OCT08 12:11’

arg+n

Ajoute ou soustrait n jours l’argument (selon le signe de n) et retourne la date résultante.

SYSDATE + 1 ’22 OCT08 12 :11’

arg1 – arg2

Retourne le nombre de jours en différence entre deux dates.

’22 OCT08 12 :11’ – ’21 OCT08 00 :01’ 1.5

arg+n/24

Ajoute n heures à la date.

’21 OCT08 00 :01’+1.5 ’22OCT08 12 :11’

MONTHS_BETWEEN(arg1,arg2)

 

Retourne le nombre de mois en différence entre deux dates.

months_between('22oct 08','20sep 08') 1.06

ADD_MONTHS(arg,n)

 

Retourne la date qui survient après n mois de l’argument.

Add_months(’22 oct 08’,2) ’22 dec 08’

Syntaxe

Définition

Exemple

NEXT_DAY(arg,char/n)

   

char{‘Monday’,’Tuesday’,…,’Saturday’},

retourne le prochain jour char dans la semaine de l’argument.

NEXT_DAY(’20OCT08’,’Thursday’) ’23 OCT08’

n

{1,2,…,7}

LAST_DAY(arg)

Renvoie la date du dernier jour du mois de l’argument.

LAST_DAY(’20 OCT08’) ’31OCT08’

ROUND(arg[,fmt])

Retourne l’argument arrondi selon le format fmt (les formats de date font l’objet de l’annexe B). Par exemple, si fmt =’MM’, alors l’arrondissement est fait sur le mois, le résultat retourné est la date du 1 er jour du mois de l’argument si DD 15, et la date du 1 er jour du mois suivant sinon. Si fmt =’YY’, alors le résultat est la date du 1 er jour de l’année de date1 si MM 6, et la date du 1 er jour de l’année suivante sinon. Si fmt est omise, alors l’argument est arrondi au jour le plus proche. Lorsque fmt est omise, alors l’arrondissement est fait sur le jour, la fonction retourne la même date si l’heure est < à 12:00, et la date du lendemain si l’heure est 12:00.

ROUND(’20 OCT08 12:01’) ’21 OCT08 00:00’ ROUND(’20 OCT08 11:59’) ’20 OCT08 00:00’ ROUND(’20 OCT08’, ‘MM’) ’01 NOV 08 00:00’ ROUND(’14 OCT08’, ‘MM’) ’01 OCT08 00:00’ ROUND(’20 OCT08’, ‘YY’) ’01 JAN 09 00:00’ ROUND(’20 MAY08’, ‘YY’) ’01 JAN 08 00:00’

TRUNC(arg[,fmt])

Retourne l’argument tronqué selon fmt .

TRUNC(’20 OCT08 23 :01’) ’20 OCT08’ TRUNC(’20 OCT08’, ‘MM’) ’01 OCT08’ TRUNC(’20 OCT08’, ‘YY’) ’01 JAN 08’

4. Les fonctions de conversion

Syntaxe

Définition

Exemple

TO_CHAR(Date,‘fmt’)

Convertit une date en chaîne de caractères et l’affiche dans le format ‘fmt’ indiqué.

TO_CHAR(’20 OCT08’,‘DD/MM/YYYY’) ‘20/10/2008’ TO_CHAR(’20 OCT08’,‘DAY’) ‘MONDAY’

TO_CHAR(NOMBRE,‘fmt’)

Convertit un nombre en chaîne de caractère dans le format spécifié.

TO_CHAR(900,‘$9.999’) ‘$900.000’

TO_NUMBER(char,’fmt’)

Convertit une chaîne de caractère en nombre.

TO_NUMBER(‘$1500’,’$9999’) 1500

TO_DATE(char,’fmt’)

Convertit char en date selon le format de date mentionnée.

TO_DATE(’23/10/2004’,‘DD/MM/YYYY’) retourne la date dans le format ORACLE, à savoir ’23 OCT04’

5. Les fonctions opérant sur tous types de données

Syntaxe

Définition

Exemple

DECODE(arg,SEARCH 1 ,val 1 ,[SEARCH 2 ,val 2 , …],default_arg)

Cette fonction retourne val i si arg=SEARCH i , si aucune valeur SEARCH i ne correspond à l’argument arg, alors default_arg sera retournée.

TO_CHAR(’20 OCT08’,‘DD/MM/YYYY’) ‘20/10/2008’ TO_CHAR(’20 OCT08’,‘DAY’) ‘MONDAY’

NVL(arg,val)

Retourne val si l’argument est NULL sinon la valeur de l’argument.

TO_CHAR(900,‘$9.999’) ‘$900.000’

GREATEST(arg 1 ,arg 2 ,…)

Retourne le plus grand argument dans la liste des paramètres.

GREATEST(5,2,10) 10

LEAST(arg 1 ,arg 2 ,…)

Retourne le plus petit argument dans la liste des paramètres.

LEAST(’20 OCT08’,’10NOV 05’) ’10 NOV 05’

Syntaxe

Définition

Exemple

VSIZE(arg)

Retourne en nombre de bytes (octets) la taille de la colonne ou de la valeur.

 

Remarques générales :

- Le langage SQL présente une panoplie importante de fonctions. Chaque SGBD étend sa version du langage en ajoutant ses propres fonctions. Ci-dessus, les fonctions spéciaux à ORACLE… certaines d’entre elles ne fonctionnent pas dans d’autres SGBDs.

- Une fonction de ligne retourne un unique résultat pour chaque ligne de la table (si cette dernière satisfait la clause WHERE au cas où elle existe).

- Un argument peut être une colonne, une constante, une fonction ou une opération. L’argument doit respecter le type de données prescrit dans la syntaxe de la fonction.

- La table DUAL est une table système qui inclut une seule ligne. Elle est utilisée pour l’affichage de fonctions opérant sur des constantes pour ne pas itérer l’affichage d’un même résultat autant de fois que de lignes dans une table utilisateur.

- Les formats de date sont disponibles dans l’annexe B.