Puis-je utiliser AVEC en TSQL deux fois pour filtrer l'ensemble des résultats, comme mon exemple?
J'ai besoin de faire quelque chose comme ça, mais SQL Server 2008 ne l'aime pas. Ma requête est en fait plus complexe que cela et je me rends compte que ce n'est pas la meilleure façon d'accomplir ce que je fais, mais mon accent est mis sur la fonctionnalité de l'instruction et de ne pas le sélectionner et où les états.
AVEC stuff1 COMME (
select nom, date de début, l'id de la part des employés startdate > 0 )AVEC stuff2 COMME (
select nom, date de début, l'id de stuff1 )sélectionnez * à partir de stuff2 where id > 10
Theres aucune honte à l'aide d'une table temporaire ou une variable de table quand vous en avez besoin
OriginalL'auteur Paul Mendoza | 2009-01-28
Vous devez vous connecter pour publier un commentaire.
Je le fais tout le temps:
Aussi loin que je peux dire, je n'ai pas atteint une limite dans les expressions de table communes.
La seule chose que vous ne pouvez pas le faire (ce qui serait assez utile) est de réutiliser les expressions de table communes distinctes
SELECT
s:Dire. Au lieu de cela, vous avez qu'à copier et coller l'ensemble de la CTE de la chaîne de nouveau.
Pas de. D'expressions de table communes ne peut être utilisé que sur une seule opération. INSERT/SELECT/SUPPRIMER, mais ils sont essentiellement consommés à ce point.
bon à savoir, merci!
C'est vraiment génial! C'est ce que je cherchais.
Merci beaucoup pour ce, très pratique, en effet, et j'ai vraiment besoin pour certains de mes procédures stockées. Merci encore!
OriginalL'auteur Cade Roux
Vous pouvez être en mesure de nous une série de sous-requêtes.
Ou des sous-requêtes imbriquées dans un CTE.
Un exemple de sous-requêtes à l'aide de Comptoirs:
Vous pouvez utiliser les deux expressions de table communes, mais peut-être pas comme vous le voulez, voir:
http://www.4guysfromrolla.com/webtech/071906-1.shtml
Je suis d'accord. C'est pourquoi j'ai inclus le lien qui a montré un exemple de comma-separated CTE. Je pense que c'est la 3ème ou 4ème exemple dans le " 4guys lien. J'ai essayé à la disposition de toutes les options.
OriginalL'auteur BuddyJoe
Non, vous pouvez seulement avoir un CTE dans une déclaration que j'ai découvert l'autre jour.
MODIFIER: Et que l'instruction est une Expression de Table Commune, fonction très utile.
Je n'avais pas réalisé qu'ils devaient être séparés par des virgules. Ce sera à portée de main. J'ai été lire mes SQL 2008 livre et de la mention de la CTE est, mais ils ne parlent pas de l'utilisation de plusieurs CTE en une seule requête, ce qui est une honte.
Yep, j'ai posté un exemple ci-dessous. Je l'ai utilisé très largement pour la dernière année dans un port d'un L3G système.
OriginalL'auteur Kezzer