>SELECT DISTINCT IIf(Year([Data Definizione]) Is Null,Year(Date()),Year([Data
>Definizione])) AS SceltaAnno FROM T_Rating;
Ciao allicavalli,
Il Transact-SQL non dispone della funzione IIf() ma la puoi sostituire con la funzione CASE():
SELECT DISTINCT
YEAR(
CASE
WHEN [Data Definizione] IS NULL THEN CURRENT_TIMESTAMP
ELSE [Data Definizione]
END
) AS SceltaAnno
FROM T_Rating;
In alternativa puoi ricorrere alle funzioni ISNULL() o COALESCE():
SELECT DISTINCT
YEAR(ISNULL([Data Definizione], CURRENT_TIMESTAMP)) AS SceltaAnno
FROM T_Rating;
SELECT DISTINCT
YEAR(COALESCE([Data Definizione], CURRENT_TIMESTAMP)) AS SceltaAnno
FROM T_Rating;
Se sei curioso di coscere alcuni dettagli su questi comandi, ti rimando ad un articolo di Aaron:
"Should I use COALESCE() or ISNULL()?"
http://databases.aspfaq.com/database/coalesce-vs-isnull-sql.html
Per maggiori informazioni consulta i seguenti paragrafi sui Books Online:
"CASE (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms181765.aspx
"ISNULL (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms184325.aspx
"COALESCE (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms190349.aspx
>grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org