8
votes

Séquence dans SQL Sélectionner

J'ai un peu un problème d'utilisation de ma séquence dans une instruction . xxx

me donne une erreur:

  1. 00000 - "Numéro de séquence non autorisé ici" * Cause: le numéro de séquence spécifié (curval ou nextval) est inapproprié ici dans la déclaration. * Action: retirez le numéro de séquence.

    C'est probablement quelque chose d'évident que je fais mal, alors j'espère que ce sera une réponse facile.


1 commentaires

Cela ressemble à Oracle. Est-ce correct? Peut vouloir ajouter une balise.


3 Réponses :


1
votes

pour IBM imformix

Dans une instruction SELECT, vous ne pouvez pas spécifier NextVal ou Curval dans les contextes suivants:

  • Dans la liste de projection lorsque le mot clé distinct est utilisé
  • dans le lieu où, groupe par ou commander par des clauses
  • dans une sous-requête
  • Lorsque l'opérateur du syndicat combine des instructions SELECT

0 commentaires

14
votes

Vous ne pouvez pas utiliser de séquences dans des requêtes avec commander par .

Supprimer la commande par ou mettre dans une sous-requête: xxx < / pré>


2 commentaires

Ceci est correct et une des limitations. Si vous souhaitez tirer des séquences pour les enregistrements dans un ordre particulier, déplacez la requête (avec la commande par) dans une vue en ligne et sélectionnez le contenu + la séquence de celle-ci.


Merci pour l'aide sur ces gars, appréciez-la.



1
votes

Pourquoi n'utilisez-vous pas ROWNUM au lieu d'aller chercher des valeurs de séquence?


2 commentaires

Ouais, je me demandais pourquoi il utilisait une séquence ici. Ne semble pas approprié ...


La plupart des clients de la base de données ont déjà des identifiants de sorte que je dois continuer à partir de ce numéro. J'insère ces résultats dans une autre table. Merci encore.