J'ai maintenant une vue intermédiaire dans SQL Server et une vue finale, comme suit:
Vue intermédiaire: P>
SELECT .... PenaltyBucket = COALESCE(CASE WHEN inv.ElapsedDays <= 30 THEN 'Not Late' END, CASE WHEN inv.ElapsedDays > 30 THEN 'Late' END) .... FROM Inventory AS inv
3 Réponses :
Vous pouvez simplement répéter l'expression dans la clause CODE> SELECT CODE>:
SELECT t.*, CASE WHEN ElapsedDays <= 30 then 'Not Late' ELSE 'Late' END AS PenaltyBucket FROM ( SELECT ..., DATEDIFF(d, ri.DateReceived, GETDATE()) AS ElapsedDays, ... FROM RegionalInventory as ri ) t
En supposant que vous n'avez vraiment qu'une seule table (appelée Remarque: P> < ul>
régionalInventory code>, il s'agit d'un endroit pratique pour une jointure latérale:
coalesce () code> avec deux
case code> expressions. Un cas code> code> peut gérer plusieurs conditions. LI>
jour code> lorsque vous utilisez
datrodiff () code>. C'est juste une bonne habitude (considérer:
m code> minutes ou mois signifie?) Li>
ul> p>
En fait, j'ai plus de deux expressions de cas, mais ne figurant que deux ici pour la brièveté et je ne traite que d'une table. Je labourage de tester cela
@coyotepoint. . . La clause Valeurs peut définir plusieurs colonnes: (valeurs (... ........) V (A, B, C) CODE>.
Vous pouvez définir la vue intérieure en tant que CTE, puis référez-la à nouveau.
Créer la vue [Schema_Name. ] Nom de vue [(nom de colonne [ ... n])] Comme
[;] :: =
[Avec[ ... N]]
SélectionnezP> blockQuote> ci-dessous est le code de démonstration de votre référence. p>
xxx pré> Ce que vous pouvez faire est. Exemple de code pour votre référence. P>
xxx pré> p>