IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Requête récursive "from dual"


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut Requête récursive "from dual"
    Bonjour

    J'aimerais savoir s'il est possible sur Oracle de faire cette requête récursive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	SELECT 1 quarter FROM DUAL UNION ALL
    	SELECT 2 quarter FROM DUAL UNION ALL
    	SELECT 3 quarter FROM DUAL UNION ALL
    	SELECT 4 quarter FROM DUAL UNION ALL
    	SELECT 5 quarter FROM DUAL UNION ALL
    	SELECT 6 quarter FROM DUAL UNION ALL
    	SELECT 7 quarter FROM DUAL UNION ALL
    	SELECT 8 quarter FROM DUAL UNION ALL
    	SELECT 9 quarter FROM DUAL UNION ALL
    	SELECT 10 quarter FROM DUAL UNION ALL
    	SELECT 11 quarter FROM DUAL UNION ALL
    	SELECT 12 quarter FROM DUAL
    Sous SQL Server la requete aurait donné ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with RECURSIVE  results as(
    	select 1 quarter FROM DUAL;
    	UNION ALL
    	SELECT quarter + 1 as quarter FROM results WHERE quarter<13
    )
    SELECT *
    FROM results
    ?

    Y a-t-il moyen de s'en sortir avec CONNECT BY et START WITH?

    Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    En 11gR2 la requête CTE récursive fonctionnera de la même façon.

    Il y a une astuce qui officiellement n'existe pas mais qui fonctionne très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    select level as quarter
      from dual
    connect by level <= 12;
     
    QUARTER
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Une solution plus pérenne est d'implémenter une fonction de RowConstructor, mnitu y fait souvent référence.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Points : 132
    Points
    132
    Par défaut
    Tu as ceci:
    http://www.developpez.net/forums/d97...le-intervalle/

    Et tu peux aussi une requête comme ceci (depuis 10g)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select quarter
    from   dual
    model
      dimension by ( 1 as key )
      measures     ( 1 as quarter )
      rules ( quarter[ for key from 1 to 12 increment 1 ] = CV(key) );

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quote et double quote dans les requêtes paramétrées
    Par michel.souris dans le forum WinDev
    Réponses: 5
    Dernier message: 07/06/2013, 10h27
  2. Requête avec champ NULL simple quote
    Par tidou95220 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/07/2012, 13h15
  3. Requête récursive
    Par tirixil dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/03/2005, 16h11
  4. equivalent de select nextval from dual en SQL-Server ?
    Par toze dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/10/2003, 09h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo