[SQL2005]Diverse SELECT in una funzione

lunedì 24 novembre 2008 - 16.48

Teech Profilo | Expert

E' possibile creare una funzione (Inline Table Valued) in in SQL2005 che in base ad un paramtro esegue una Select piuttosto che un'altra?
Una cosa tipo
CREATE FUNCTION MiaFunzione ( @Parametro AS Integer) RETURNS TABLE AS RETURN CASE @Parametro WHEN 1 THEN SELECT Campo1, Campo2 FROM Tabella1 WHERE Campo3="AAA" WHEN 2 THEN SELECT Campo1, Campo2 FROM Tabella1 WHERE Campo4="AAA" ELSE SELECT Campo1, Campo2 FROM Tabella1 END
Ovviamente così ho già provato ma non funziona... Ho provato anche altri modi inutilmente ma non so nemmeno se è possibile...

Grazie

--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

lbenaglia Profilo | Guru

>E' possibile creare una funzione (Inline Table Valued) in in
>SQL2005 che in base ad un paramtro esegue una Select piuttosto
>che un'altra?
Con una inline dubito, con una Multistatement di sicuro, ma che senso avrebbe una udf del genere?
Ogni esecuzione creerebbe un nuovo query plan.
Non sarebbe meglio creare 3 udf distinte delegando la scelta al client?

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Teech Profilo | Expert

Sono entrato in un turbine di errori concettuali (anche un altro post che ho aperto mi sono reso conto essere una cosa poco logica) vista la stanchezza ed il freddo... Direi che far operare la scelta al client è la soluzione più logica e corretta... Grazie!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5