Bonjour,
Existe-t-il un moyen de générer dans une vue sql un champ avec des valeurs uniques (type auto-incrément dans une table) ?
Par exemple en lui disant de m'afficher le numéro de la ligne ou quelque chose dans le genre ...
Merci !
Version imprimable
Bonjour,
Existe-t-il un moyen de générer dans une vue sql un champ avec des valeurs uniques (type auto-incrément dans une table) ?
Par exemple en lui disant de m'afficher le numéro de la ligne ou quelque chose dans le genre ...
Merci !
Vous pouvez utiliser la fonction row_number() pour réaliser cela.
Super, merci !:ccool:
Ca marche bien mais çà me renvoie un message d'erreur avant de fonctionner (bizarre) :
La construction ou l'instruction SQL OVER n'est pas prise en charge
Est-ce que je dois m'en inquiéter (diminution des perf ...) ou passer outre vu que la requête s'exécute bien
Merci d'avance et bonne soirée
quelle version de sql server ???
A +
Microsoft SQL Server 2005
Ceci passe sans problème :
NID étant la clef de la table dbo.T_CLIENTCode:
1
2
3
4 CREATE VIEW V AS SELECT *, ROW_NUMBER() OVER(ORDER BY NID) AS N FROM dbo.T_CLIENT
Cependant sans clef, le résultat peut être aléatoire....
A +
Mon pb justement, c'est que je n'ai pas de clé primaire, l'idée étant de créer un index sur le champ ROW_NUMBER justement.
Pour être plus précis cette vue est une jointure entre une table et une autre vue qui me renvoit de nombreux résultats par clé primaire de la table (c'est ce qu'il me faut)
Donc mon seul pb, c'est ce message d'erreur apparemment, sans conséquence:
Erreur de syntaxe SQL :
Il apparait uniquement qd j'ouvre la vue pour la modifier (par le code SQL). Quand j'ouvre la vue directement, aucun problème, j'ai mes résultats et mon champ ROW_NUMBERisé.Citation:
La construction ou l'instruction SQL OVER n'est pas prise en charge.
Avez vous déjà rencontré ce style de pb (une erreur de syntaxe sql qui fonctionne!!)
Merci pour les précédentes réponses et pour la suivante ;-)
Vous ne pouvez pas créer un index sur ce type de données.Code:l'idée étant de créer un index sur le champ ROW_NUMBER justement.
Exposez votre problème plus clairement en respectant la charte de postage et en donnant le DDL des tables en jeu ainsi qu'un jeu d'essais sous forme SQL.
A +
merci de vos réponses