CREATE VIEW View1
AS
SELECT Col1,
Col2,
dbo.fn1(col2) as Col3
FROM TestTable
/*
--Instead of writing below query I created a new View View2
SELECT Col1,
Col2,
dbo.fn1(col2) as Col3
dbo.fn2(dbo.fn1(col2)) as Col4
FROM TestTable
*/
CREATE VIEW View2
AS
SELECT Col1,
Col2,
Col3,
dbo.fn3(col3) as Col4
FROM TestTable
J'ai une requête comme ci-dessus. J'ai une colonne qui est une sortie de fn1. Je voulais utiliser cette sortie pour l'autre fonction fn2. Dans ce cas, je ne peux pas utiliser le col3 directement dans fn2 donc j'ai divisé deux fonctions et voir comme ci-dessous. Je voulais savoir si je me déplaçais dans la bonne direction, est-ce que je fais ce que je fais ou y a-t-il une meilleure façon de le faire? Dans la partie commentée de la vue1, la fonction fn1 sera appelée deux fois? ou SQL Server prendra-t-il soin de l'optimiser?Fonction dans SQL Select Instruction