2011-07-12 4 views
3

Avant de commencer par mettre beaucoup d'instructions SQL pour résoudre mon problème, je pourrais peut-être obtenir une réponse en posant une question simple. J'utilise SQL Server 2005 sur une base quotidienne et utilise la clause "WITH" pour effectuer des sous-requêtes. Je suis malheureusement dans une situation où je dois utiliser SQL Compact qui ne permet pas l'utilisation de la clause "WITH" pour effectuer des sous-requêtes. Quel est le substitut de la clause "WITH" dans SQL Compact. En moyenne, j'utilise 10 sous-requêtes à la fois.Clause/instruction SQL "WITH"

Répondre

2

Créer une table temporaire avec le résultat de chaque clause with; utilisez les tables temporaires au lieu de la clause with.

7

Tant qu'aucun de votre de CTE (Common Table Expression - le nom officiel de la fonction que vous utilisez) sont récursive, rappelez-vous que dans la forme la plus simple,

;WITH Q1 As 
(
    SELECT columns FROM Table1 
) 
SELECT columns FROM Q1 

peut se traduire à peu près à:

SELECT columns FROM (SELECT columns FROM Table1) Q1 

Notez le 'Q1' à la fin. Vous devez donner un nom à la sous-requête. Le nom que vous choisissez souvent n'a pas d'importance, et les noms simples sont communs ici - même juste des lettres simples. Avec 10 sous-requêtes à enchaîner, vous devrez peut-être choisir quelque chose de plus significatif.