Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
IF o CASE in colonna calcolata
lunedì 02 agosto 2010 - 11.44
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
Visual Studio Express
|
SQL Server 2008
|
SQL Server Express
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
lun 2 ago 2010 - 11:44
Ciao a tutti,
Vorrei sapere se è possibile utilizzare in una colonna calcolata il CASE o l'IF.
Mi spiego un pochino meglio:
Nella colonna "D" di una tabella vorrei il risultato della colonna "A" + la colonna "B" ma solo ed esclusivamente SE la colonna "C" è True
Se la colonna "C" è False allora la colonna "D" deve poter ospitare il valore che dico io.
Es.
A - B - C - D
1 - 1 - True - 2
2 - 3 - False - "Pippo" (Pippo non è a caso perchè nella colonna "D" dovrei mettere dei dati di tipo nvarchar())
Se può fà?
Grazie
alexmed
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 2 ago 2010 - 11:50
>Se la colonna "C" è False allora la colonna "D" deve poter ospitare
>il valore che dico io.
No, una colonna calcolata è virtuale pertanto non potrai memorizzare un valore esplicito.
>Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
lun 2 ago 2010 - 11:56
Ok grazie.
Lo immaginavo ma mi era venuto il sospetto leggendo questo articolo:
http://www.dotnethell.it/articles/ADOChildTables.aspx
Ciao
alexmed
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
lun 2 ago 2010 - 12:47
Ho risolto in questo modo
Ho aggiunto una colonna dove metto il mio dato.
Nel caso che la condizione sia True faccio la somma (o concatenazione) di A e B, se C è False allora riporto il mio dato
A - B - C - D - E
X - 1 - True - NULL - X1
X - 1 - False - mio dato Y - mio dato Y
Quindi:
CASE [C] WHEN 'True' THEN (A + B)*** WHEN 'False' THEN [D]
*** Con i relativi CONVERT
La formula è scritta al volo quindi potrebbe essere errata ma nel mio caso sembra funzionare.
Ciao
alexmed
Torna su
Stanze Forum
Elenco Threads
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 !