fonctions sql database

➜fonctions sql database

» pages » fonctions sql database » « Prev Next »
  • Idoo-mysql00 ;
  • Fonctions sql database
  • Modlogsql awstats ;
  • Quitusquitus Quitus. quitus Acte par lequel l’autorité qualifiée atteste qu’un gestionnaire financier cessant ses fonctions est Quitus Ep retraite/Assurance vie
  • Fonction to_char en sql ;
  • Quitus Quitus ;
  • Benjamin fontaine sql
  • Correspondance des fonctions des divers SGBDR

    "http://fadace.developpez.com/image/N1.gif" alt="Débutant" />
     
    Correspondance des fonctions des divers SGBDR en vue d'un portage d'un SGBDR à l'autre

    I. Introduction
    II. Fonctions d'agrégat
    III. Fonctions sur chaînes de caractères
    IV. Fonctions temporelles
    V. Fonctions numériques
    VI. Autres fonctions

    I. Introduction

    Nous avons tous une langue maternelle, et certains chanceux ont des compétences complémentaires dans d'autres langues.

    En informatique, la problématique est la même : on apprend un language avec une certaine peine, mais lorsque la pratique est là, c'est le language que l'on connaît généralement le mieux. La connaissance d'autes languages est alors plus aisée si l'on peut apprendre 'par similitudes'.

    L'Esperanto en SGBDR est représenté par les diverses normes SQL. Il y a cependant des différences mineures qui créent des problèmes majeurs aux développeurs sensés passer d'un SGBDR à un autre : le language de chaque SGBDR qui diffère pour écrire les objets compilés (fonctions, triggers, contraintes, procédures stockées), et les fonctions.

    Voici donc un petit comparatif qui vous permettra traduire plus aisément une fonction d'un SGBD à l'autre.

    Pour la compatibilité, les acronymes suivants ont été utilisés:
    • 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'hésitez pas à me faire parvenir votre matrice de correspondance.


    II. Fonctions d'agrégat

    Action Fonction Compatibilité
    Somme des champs non nulls Select caisse, sum(montant) from ecritures where annee=2005 group by caisse SQL,OR,DB,AS,ASA,MS,MY
    Nombre des champs non nulls Select caisse, count(montant ) from ecritures group by caisse SQL,OR,DB,AS,ASA,MS,MY
    Maximum Select max(montant) from. SQL,OR,DB,AS,MS,ASE,ASA,MY
    Minimum Select min(montant) from. SQL,OR,DB,AS,MS,ASE,ASA,MY
    Moyenne Select avg(montant) from. SQL,OR,DB,AS,MS,ASE,ASA,MY
    Ecart type Select stddev(montant) from... OR,DB,AS,MY,PG
    Variance Select var(montant) from...
    Select variance(montant) from...
    DB,AS,MS
    OR,MY,PG
    Autres fonctions analytiques 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 OR

    III. Fonctions sur chaînes de caractères

    Action Fonction Résultat Compatibilité
    Concaténation 'A' || 'B'
    concat('A','B')
    'A' + 'B'
    concatenate ('A','B')
    'AB' 92,OR,DB,AS,IN,ASA
    OR,DB,AS,MY
    MS,ASE,ASA
    SQL
    Conversion en chaîne (var)char(89)
    to_char(89)
    convert(char(2), 89), str(89)
    cast(89 as char(2))
    '89' DB,AS
    OR
    MS,ASE,MY
    SQL,MS,OR,DB,AS,MY
    Transformation ASCII char(89)
    chr(89)
    ASCII('Y')
    'Y'
    'Y'
    89
    MS,ASE
    OR
    MS,OR,MY
    Longueur d'une chaîne char[acter]_length('A ')
    length('A ')
    datalength('A '), len('A ')
    3 SQL,DB,AS,MY
    OR,DB,AS,MY,ASA,IN
    MS,ASE,ASA
    Position d'une sous-chaîne instr('ABCDE', 'CD')
    locate('CD', 'ABCD')
    patindex('%CD%', 'ABCD')
    position('ABCDE', 'CD')
    3 OR,MY
    DB,AS,MY
    MS,ASE
    SQL,MY
    Mise en majuscules ucase('BonJour')
    upper('BonJour')
    'BONJOUR' DB,AS,MY
    SQL,MS,ASE,ASA,OR,DB,AS,MY
    Mise en minuscules lcase('BonJour')
    lower('BonJour')
    'bonjour' DB,AS,MY
    SQL,MS,ASE,ASA,OR,DB,AS,MY
    Remplissage à gauche lpad('A',5,'X')
    replicate('X',5)+'A'
    'XXXXXA' OR,MY
    MS,ASE
    Remplissage à droite rpad('A',5,'X')
    'A'+replicate('X',5)
    'AXXXXX' OR,MY
    MS,ASE
    Initiales en majuscules initcap('de LA molle')
    translate('de LA molle')
    'De La Molle' OR
    SQL
    Suppression des espaces à gauche ltrim(' A B ') 'A B ' OR,MS,ASE,DB,AS,MY
    Suppression des espaces à droite rtrim(' A B ') ' A B' OR,MS,ASE,DB,AS,MY
    Suppression des espaces à gauche et à droite trim(' A B ')
    ltrim(rtrim(' A B '))
    'A B' SQL,OR,AS,MY
    MS,ASE,OR,DB,AS,MY
    Conversion en unicode nchar(509) 'ae' MS
    Recherche phonétique soundex('Fabien') 'F150' OR,MS,ASE,AS,MY
    Génération d'espace space(5)
    lpad(',5,' ')
    ' ' MS,ASE,DB,AS,MY
    OR
    Extraction d'une sous-chaîne substr(‘ABCDE',3,2)
    substring(‘ABCDE',3,2)
    'CD' OR,DB,AS,MY
    SQL,MS,ASE,MY
    Transformation de caractères translate('abcd', 'ac', 'xy')
    translate('abcd', 'xy', 'ac')
    'xbyc' SQL,OR
    DB,AS
    Remplacement d'une chaîne replace('ABC', 'AB','B')
    str_replace('ABC', 'AB','B')
    'BC' MS,DB2,AS,OR,MY
    ASE
    Remplacement d'une chaîne par positionnement stuff('abcdef', 2, 3, 'ijklmn')
    left('abcdef',1)+ 'ijklmn'+right('abcdef', datalength('abcdef')-4)
    instr('abcdef',1)||'ijklmn'||instr('abcdef', -4)
    'aijklmnef' MS
    MS,ASE
    OR
    Renversement d'une chaîne reverse('ABCD') 'DCBA' ASE,MS,OR,MY
    Partie gauche d'une chaîne left('ABCD',2)
    substring('ABCD',0,2)
    substr('ABCD',2)
    'AB' MS,DB,AS,MY
    ASE,ASA,IN
    OR
    Partie droite d'une chaîne right('ABCD',2)
    substr('ABCD',-2)
    'CD' ASE,MS,DB,AS,MY
    OR

    IV. Fonctions temporelles

    Action Fonction Résultat Compatibilité
    Conversion en date date('2002-01-02')
    to_date('2002-01-02')
    cast('2002-01-02' as.)
    str_to_date('2002-01-02',.)
    '01/02/2002' AS,DB
    OR
    SQL,AS,DB,OR,MS,MY,ASA,IN
    MY
    Ajout d'un intervalle à une date dateadd(M,2,'01.02.2005')
    dateadd, adddate('01.02.2005', INTERVAL 2 MONTH), '01.02.2005'+interval 2MONTH
    '1 avr. 2005 0:00' MS,ASE
    SQL,MY,OR,IN,MS,ASA
    Retrait d'un interval à une date dateadd(M,-2,'01.02.2005')
    date_sub('1.2.2005', INTERVAL 30 DAY)
    '1.2.3005' - 2 month
    '1 dec. 2004 0:00' MS,ASE
    MY
    DB,AS,ASA,IN,MS,OR
    Différence entre 2 dates datediff(day, '1.1.2005', '1.1.2006')
    datediff('1.1.2005', '1.1.2006')
    days(date('1.1.2005'))-days(date('31.12.2005'))
    365 MS,ASE
    MY
    AS,DB
    Nom du jour dayname('19.7.2005')
    datename(d,'19.7.2005')
    date_format('19.7.2005', '%W'), dayname('19.7.2005')
    'Mardi' AS,DB
    MS,ASE
    Dernier jour du mois last_day('4.2.1996')
    dateadd(D,-1,convert(datetime,'1.'+datepart(M,dateadd(M,1,'4.2.1996'))+'.'datepart(Y,'4.2.1996')))
    '29.2.1996' OR,MY
    MS,ASE
    Conversion en heure time('01:00') '01:00:00' DB,AS
    Nom du mois monthname('19.7.2005')
    datename(m,'19.7.2005')
    date_format('19.7.2005', '%M'), month('19.7.2005')
    'Juillet' AS,DB
    MS,ASE
    MY
    Conversion en date/heure timestamp('2002/1/1')
    to_timestamp('2002/1/1')
    convert(timestamp, '2002/1/1')
    '2002-01-01-00.00.00.000000' DB,AS
    OR
    MS,ASE
    Date courante current_date
    current date
    getdate()
    curdate(), now()
    today()
    '18/07/2005' SQL,OR,MY
    DB,AS,ASA
    MS,ASE
    MY
    IN
    Heure courante current time
    current_time
    getdate()
    curtime()
    CURRENT_TIMESTAMP
    '18:00:34' AS,DB
    SQL,MY
    MS,ASE
    MY
    MS
    Heure et date courantes now(), current timestamp
    current_timestamp
    getdate()
    current_timestamp()
    current()
    '2005-07-18-18.29.30.303032' AS,DB
    OR,AS,MS
    SQL,MS,ASE
    MY
    IN
    Écart avec le GMT current timezone
    current_timestamp
    datediff(hh, getutcdate(),getdate())
    20000
    . +02:00
    2
    AS
    OR
    MS,ASE
    Microseconde d'une heure microsecond('02:03:04.129')
    datepart(ms,'02:03:04.129')
    date_format('02:03:04.129', '%f')
    129 AS,DB,MY
    MS,ASE
    MY
    Extraction du semestre d'une date quarter('1.7.2005')
    datepart(q, '1.7.2005')
    3 AS,DB,MY
    MS,ASE
    Extraction d'une partie d'une date/heure year(), month(), day(),
    hour(), minutes(), second()
    datepart(hh, '1.1.2005 05:04:03')
    extract(hour from '1.1.2005 05:04:03')
    date_format('1.1.2005 05:04:03', '%h')
    ... AS,DB,MY
    AS,DB,MY
    MS,ASE
    OR,MY
    MY
    Prochain 2ème jour de la semaine next_day('19.07.2005',2) '26.07.2005' OR
    No de la semaine week('19-7-2005')
    datepart(ww, '19-7-2005')
    date_format('19-7-2005', '%V')
    30 AS,DB,MY
    MS,ASE
    MY
    Jour de la semaine dayofweek('19.7.2005')
    datepart(w, '19.7.2005')
    date_format('19.7.2005', '%w')
    3
    2
    AS,DB,MY
    MS,ASE
    MY
    Jour de l'année dayofyear('19.7.2005')
    datediff(d,'1.1.2005','19.7.2005')+1
    date_format('19.7.2005', '%j')
    200 AS,DB,MY
    MS,ASE
    MY

    V. Fonctions numériques

    Action Fonction Résultat Compatibilité
    Conversion en décimal decimal('45')
    convert(dec(9,2), '45')
    to_number('45')
    convert('45', decimal)
    cast('45' as decimal)
    45 DB,AS
    MS,ASE
    OR
    MY
    MS,MY
    Conversion en entier integer('7.7')
    cast(7.6 as integer)
    cast(7.6 as integer)
    cast(7.6 as signed/unsigned)
    7
    7
    8
    8
    AS,DB
    AS,DB,MS,ASE
    OR
    MY
    Conversion en nombre à virgule flottante float(1.0/3)
    cast(1/0.3 as float)
    convert(float, 1/0.3)
    0.333333...1 AS
    AS,DB,MS,SQL,OR
    MS,ASE
    La plus grande valeur greatest(5,9,.) 9 OR,MY
    La plus petite valeur least(5,9,.) 5 OR,MY
    Valeur absolue abs(-3.3) 3.3 DB,AS, ASE, ASA,PG,MS,OR,MY
    Conversion en degrés degrees(1) 57.29 AS,MY
    Conversion en digits (sans décimales) digits(3.56)
    convert(int, (str_replace(convert(varchar(30), 3.56),'.',')))
    cast((replace(cast ( 3.56 as varchar(30)),'.',')) as int)
    replace(3.56,'.',')
    365 AS,DB
    ASE
    MS
    OR
    Conversion en digits sur 10 positions digits(123)
    RIGHT('0000000000'+convert(varchar(10),123),10)
    substr('0000000000'||123 ),-10)
    0000000356 AS,DB
    MS,ASE
    OR
    Exponentiel exp(2) 7.389 MS,OR,DB,AS,MY
    Arrondi supérieur ceiling(3.4)
    ceil(3.4)
    4 MS,ASE,DB,AS,MY
    OR,MY
    Trigonométrie sin(.1), cos(.1), tan(.1)
    asin(.1), acos(.1), atan(.1)
    sinh(.1), cosh(.1), tanh(.1)
    cot(.1)
    atan2(.3,.2)
    ... MS,ASE,OR,DB,AS,MY
    MS,ASE,OR,DB,AS,MY
    OR,DB,AS
    MS,ASE,DB,AS,MY
    OR,MY
    Logarithme népérien ln(1) 0 OR,DB,AS
    Logarithme en base 10 log(1)
    log10(1)
    log(1,10)
    0 MS,DB,AS,MY
    MS,ASE,DB,AS,MY
    OR
    Modulo mod(50,7)
    50 % 7
    1 OR,DB,AS,MY
    MS,ASE,MY
    PI pi() 3.1415... OR,MS,ASE,DB,AS,MY
    Élévation à la puissance power(2,4) 16 OR,MS,ASE,DB,AS,MY
    Valeur aléatoire rand(1) ... DB,MS,ASE,AS,MY
    Arrondi round(4.576,2)
    round(4.574,2)
    4.58
    4.57
    DB,MS,ASE,OR,AS,MY
    Signe d'un nombre sign(-7) -1 DB,MS,OR,AS,ASE,MY
    Racine carrée sqrt(16) 4 DB,MS,OR,AS,ASE,MY
    Troncature sans arrondi trunc(3.599,2)
    truncate(3.599,2)
    3.59 OR,DB,AS
    MS,ASE,DB,AS,MY

    VI. Autres fonctions

    Action Fonction Résultat Compatibilité
    Fonction conditionnelle decode('M','M','H','F')
    Value ('M','M','H','F')
    case 'M' when 'M' then 'H' else 'F' end
    'H' OR
    DB,AS
    SQL,OR,MS,ASE,ASA,IN,DB,AS,MY
    1ère valeur non nulle coalesce(Null, 0,.)
    isnull(NULL,0)
    Nvl(NULL,0)
    NULLIF(NULL,0)
    0 SQL,AS,DB,OR,MS,ASE,ASA,MY
    OR,AS,ASA,DB,MS,ASE
    OR,IN
    SQL,ASA,ASE,MS
    Utilisateur courant current_user
    User
    user_name()
    user_sname()
    'Utilisateur' SQL,MS,DB,MY
    OR
    ASE
    MS
    Utilisateur de la session session_user
    suser_name()
    suser_sname()
    user()
    'Login' SQL,MS,DB,MY
    ASE
    MS
    MY
    Utilisateur système System_user
    Userenv
    'Login système' SQL,MS,DB
    OR
    Rachat Credit Banque France - Lupaland
    fonctions sql database © BMX - - 04:52:14@4599 -
    Blog, Sitemap, Projets, Videos XXX Allopass, Rachat de Credit