Professional Documents
Culture Documents
Correspondance des fonctions des divers SGBDR en vue d'un portage d'un SGBDR l'autre
Correspondance des fonctions des divers SGBDR par fadace (Fabien Celaia)
I - Introduction..............................................................................................................................................................3 II - Fonctions d'agrgat................................................................................................................................................3 III - Fonctions sur chanes de caractres................................................................................................................... 4 IV - Fonctions temporelles...........................................................................................................................................5 V - Fonctions numriques........................................................................................................................................... 6 VI - Autres fonctions.................................................................................................................................................... 7
-2Copyright 2005 - Fadace. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://fadace.developpez.com/sgbdcmp/fonctions/
Correspondance des fonctions des divers SGBDR par fadace (Fabien Celaia)
I - Introduction
Nous avons tous une langue maternelle, et certains chanceux ont des comptences complmentaires dans d'autres langues. En informatique, la problmatique est la mme : on apprend un language avec une certaine peine, mais lorsque la pratique est l, c'est le language que l'on connat gnralement le mieux. La connaissance d'autes languages est alors plus aise si l'on peut apprendre "par similitudes". L'Esperanto en SGBDR est reprsent par les diverses normes SQL. Il y a cependant des diffrences mineures qui crent des problmes majeurs aux dveloppeurs senss passer d'un SGBDR un autre : le language de chaque SGBDR qui diffre pour crire les objets compils (fonctions, triggers, contraintes, procdures stockes), et les fonctions. Voici donc un petit comparatif qui vous permettra traduire plus aisment une fonction d'un SGBD l'autre. Pour la compatibilit, les acronymes suivants ont t utiliss: SQL = norme SQL2 ASE = Sybase Adaptive Server Enterprise (15) ASA = Sybase Adaptive Server Anywhere MS = Microsoft SQL Server (2000) OR = Oracle (10g) DB = DB2-UDB (8.2) AS = DB2-400 (V5R3) MY = MySQL (4.1) (merci Maximilian) PG = PostgreSql (8.0) IN = Informix
Si d'aventure vous vouliez enrichir cette page avec d'autres SGBDR, n'hsitez pas me faire parvenir votre matrice de correspondance.
II - Fonctions d'agrgat
Action Somme des champs non nulls Nombre des champs non nulls Maximum Minimum Moyenne Ecart type Variance Autres fonctions analytiques Fonction Select caisse, sum(montant) from ecritures where annee=2005 group by caisse Select caisse, count(montant ) from ecritures group by caisse Select max(montant) from ... Select min(montant) from ... Select avg(montant) from ... Select stddev(montant) from... Select var(montant) from... Select variance(montant) from... corr, covar_pop, covar_samp, cume_dist, dense_rank, first, first_value, lag, last, last_value,lead,ntile, percent_rank, percentile_cont, percentile_disc, rank, ration_to_report, row_number, stddev_pop, stddev_samp, var_pop, var_samp Compatibilit SQL,OR,DB,AS,ASA,MS,MY SQL,OR,DB,AS,ASA,MS,MY SQL,OR,DB,AS,MS,ASE,ASA,MY SQL,OR,DB,AS,MS,ASE,ASA,MY SQL,OR,DB,AS,MS,ASE,ASA,MY OR,DB,AS,MY,PG DB,AS,MS OR,MY,PG OR
-3Copyright 2005 - Fadace. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://fadace.developpez.com/sgbdcmp/fonctions/
Correspondance des fonctions des divers SGBDR par fadace (Fabien Celaia)
'89'
'Y' 'Y' 89 3 3
'BONJOUR' 'bonjour' 'XXXXXA' 'AXXXXX' 'De La Molle' 'A B ' ' A B' 'A B' 'ae' 'F150' '' 'CD' 'xbyc' 'BC' 'aijklmnef'
Compatibilit 92,OR,DB,AS,IN,ASA OR,DB,AS,MY,PG MS,ASE,ASA SQL DB,AS OR MS,ASE,MY SQL,MS,OR,DB,AS,MY MS,ASE OR,PG MS,OR,MY SQL,DB,AS,MY OR,DB,AS,MY,ASA,IN,PG MS,ASE,ASA OR,MY DB,AS,MY MS,ASE SQL,MY DB,AS,MY SQL,MS,ASE,ASA,OR,DB,AS,MY,PG DB,AS,MY SQL,MS,ASE,ASA,OR,DB,AS,MY,PG OR,MY MS,ASE OR,MY MS,ASE OR SQL OR,MS,ASE,DB,AS,MY OR,MS,ASE,DB,AS,MY SQL,OR,AS,MY MS,ASE,OR,DB,AS,MY MS OR,MS,ASE,AS,MY MS,ASE,DB,AS,MY OR OR,DB,AS,MY SQL,MS,ASE,MY SQL,OR DB,AS MS,DB2,AS,OR,MY ASE MS MS,ASE OR
-4Copyright 2005 - Fadace. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://fadace.developpez.com/sgbdcmp/fonctions/
Correspondance des fonctions des divers SGBDR par fadace (Fabien Celaia)
Renversement d'une chane Partie gauche d'une chane left('ABCD',2) substring('ABCD',0,2) substr('ABCD',1,2) Partie droite d'une chane right('ABCD',2) substr('ABCD',-2)
IV - Fonctions temporelles
Action Conversion en date
Nom du jour
Conversion en date/heure
Date courante
Heure courante
Fonction Rsultat Compatibilit date('2002-01-02') '01/02/2002' AS,DB to_date('2002-01-02') OR cast('2002-01-02' as ...) SQL,AS,DB,OR,MS,MY,ASA,IN str_to_date('2002-01-02', ...) MY dateadd(M,2,'01.02.2005') '1 avr. 2005 0:00' MS,ASE dateadd, SQL,MY,OR,IN,MS,ASA adddate('01.02.2005', INTERVAL 2 MONTH), '01.02.2005'+interval 2MONTH dateadd(M,-2,'01.02.2005') '1 dec. 2004 0:00' MS,ASE date_sub('1.2.2005', MY INTERVAL 30 DAY) DB,AS,ASA,IN,MS,OR '1.2.3005' - 2 month datediff(day, '1.1.2005', 365 MS,ASE '1.1.2006') MY datediff('1.1.2005', AS,DB '1.1.2006') days(date('1.1.2005'))days(date('31.12.2005')) dayname('19.7.2005') 'Mardi' AS,DB datename(d,'19.7.2005') MS,ASE date_format('19.7.2005', '%W'), dayname('19.7.2005') last_day('4.2.1996') '29.2.1996' OR,MY dateadd(D,-1,convert(datetime,'1.'+datepart(M,dateadd(M,1,'4.2.1996'))+'.'datepart(Y,'4.2.1996')) MS,ASE time('01:00') '01:00:00' DB,AS monthname('19.7.2005') 'Juillet' AS,DB datename(m,'19.7.2005') MS,ASE date_format('19.7.2005', MY '%M'), month('19.7.2005') timestamp('2002/1/1') '2002-01-01-00.00.00.000000' DB,AS to_timestamp('2002/1/1') OR convert(timestamp, MS,ASE '2002/1/1') current_date '18/07/2005' SQL,OR,MY current date DB,AS,ASA getdate() MS,ASE curdate(), now() MY today() IN current time '18:00:34' AS,DB current_time SQL,MY
-5Copyright 2005 - Fadace. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://fadace.developpez.com/sgbdcmp/fonctions/
Correspondance des fonctions des divers SGBDR par fadace (Fabien Celaia)
getdate() MS,ASE curtime() MY CURRENT_TIMESTAMP MS now(), current timestamp '2005-07-18-18.29.30.303032' AS,DB current_timestamp OR,AS,MS getdate() SQL,MS,ASE current_timestamp() MY current() IN current timezone 20000 AS current_timestamp ... +02:00 OR datediff(hh, 2 MS,ASE getutcdate(),getdate()) microsecond('02:03:04.129') 129 AS,DB,MY datepart(ms,'02:03:04.129') MS,ASE date_format('02:03:04.129', MY '%f') quarter('1.7.2005') 3 AS,DB,MY datepart(q, '1.7.2005') MS,ASE year(), month(), day(), ... AS,DB,MY hour(), minutes(), second() AS,DB,MY datepart(hh, '1.1.2005 MS,ASE 05:04:03') OR,MY extract(hour from '1.1.2005 MY 05:04:03') date_format('1.1.2005 05:04:03', '%h') next_day('19.07.2005',2) '26.07.2005' OR week('19-7-2005') 30 datepart(ww, '19-7-2005') date_format('19-7-2005', '%V') to_number(to_char(to_date('19.7.2005'),'IW')) dayofweek('19.7.2005') 3 datepart(w, '19.7.2005') 2 date_format('19.7.2005', '%w') dayofyear('19.7.2005') 200 datediff(d,'1.1.2005','19.7.2005')+1 date_format('19.7.2005', '%j') AS,DB,MY MS,ASE MY OR AS,DB,MY MS,ASE MY AS,DB,MY MS,ASE MY
Jour de la semaine
Jour de l'anne
V - Fonctions numriques
Action Conversion en dcimal Fonction decimal('45') convert(dec(9,2), '45') to_number('45') convert('45', decimal) cast('45' as decimal) integer('7.7') cast(7.6 as integer) cast(7.6 as integer) 45 Rsultat Compatibilit DB,AS MS,ASE OR MY MS,MY AS,DB AS,DB,MS,ASE OR MY
Conversion en entier
7 7 8 8
-6Copyright 2005 - Fadace. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://fadace.developpez.com/sgbdcmp/fonctions/
Correspondance des fonctions des divers SGBDR par fadace (Fabien Celaia)
Conversion en nombre virgule flottante La plus grande valeur La plus petite valeur Valeur absolue
cast(7.6 as signed/ unsigned) float(1.0/3) cast(1/0.3 as float) convert(float, 1/0.3) greatest(5,9, ...) least(5,9, ...) abs(-3.3)
0.333333...1 9 5 3.3
Conversion en degrs degrees(1) 57.29 Conversion en digits (sans digits(3.56) 365 dcimales) convert(int, (str_replace(convert(varchar(30), 3.56),'.',''))) cast((replace(cast ( 3.56 as varchar(30)),'.','')) as int) replace(3.56,'.','') Conversion en digits sur 10 digits(123) 0000000356 positions RIGHT('0000000000'+convert(varchar(10),123),10) substr('0000000000'|| 123 ),-10) Exponentiel exp(2) 7.389 Arrondi suprieur ceiling(3.4) 4 ceil(3.4) Trigonomtrie sin(.1), cos(.1), tan(.1) ... asin(.1), acos(.1), atan(.1) sinh(.1), cosh(.1), tanh(.1) cot(.1) atan2(.3,.2) Logarithme nprien ln(1) 0 LOG2() Logarithme en base 10 log(1) 0 log10(1) log(1,10) Modulo mod(50,7) 1 50 % 7 PI pi() 3.1415... lvation la puissance power(2,4) 16 Valeur alatoire rand(1) ... Arrondi round(4.576,2) 4.58 round(4.574,2) 4.57 Signe d'un nombre sign(-7) -1 Racine carre sqrt(16) 4 Troncature sans arrondi trunc(3.599,2) 3.59 truncate(3.599,2)
AS AS,DB,MS,SQL,OR MS,ASE OR,MY OR,MY DB,AS, ASE, ASA,PG,MS,OR,MY AS,MY AS,DB ASE MS OR
AS,DB MS,ASE OR MS,OR,DB,AS,MY MS,ASE,DB,AS,MY OR,MY MS,ASE,OR,DB,AS,MY MS,ASE,OR,DB,AS,MY OR,DB,AS MS,ASE,DB,AS,MY OR,MY OR,DB,AS MY MS,DB,AS,MY MS,ASE,DB,AS,MY OR OR,DB,AS,MY MS,ASE,MY OR,MS,ASE,DB,AS,MY OR,MS,ASE,DB,AS,MY DB,MS,ASE,AS,MY DB,MS,ASE,OR,AS,MY DB,MS,OR,AS,ASE,MY DB,MS,OR,AS,ASE,MY OR,DB,AS MS,ASE,DB,AS,MY
VI - Autres fonctions
Action Fonction Rsultat n premires lignes d'un set SELECT * FROM A 10 premires lignes WHERE RRN(A) < 10 SELECT * FROM A FETCH FIRST 10 ROWS ONLY SELECT TOP 10 * FROM A AS DB MS,ASE,ASA OR MY Compatibilit
-7Copyright 2005 - Fadace. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://fadace.developpez.com/sgbdcmp/fonctions/
Correspondance des fonctions des divers SGBDR par fadace (Fabien Celaia)
Fonction conditionnelle
Utilisateur courant
Utilisateur de la session
Utilisateur systme
SELECT * FROM A WHERE ROWNUM < 10 SELECT * FROM A LIMIT 0,10 decode('M','M','H','F') Value ('M','M','H','F') case 'M' when 'M' then 'H' else 'F' end coalesce(Null, 0, ...) isnull(NULL,0) Nvl(NULL,0) NULLIF(NULL,0) current_user User user_name() user_sname() session_user suser_name() suser_sname() user() System_user Userenv
'H'
OR DB,AS SQL,OR,MS,ASE,ASA,IN,DB,AS,MY SQL,AS,DB,OR,MS,ASE,ASA,MY OR,AS,ASA,DB,MS,ASE OR,IN SQL,ASA,ASE,MS SQL,MS,DB,MY OR ASE MS SQL,MS,DB,MY ASE MS MY SQL,MS,DB OR
'Utilisateur'
'Login'
'Login systme'
-8Copyright 2005 - Fadace. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://fadace.developpez.com/sgbdcmp/fonctions/