Funzione COELESCE

martedì 27 giugno 2006 - 19.00

bluland Profilo | Guru

mi chiarite l'utilizzo della funzione coelesce?? a quello che sapevo io che lessi in un libro di basi di dati questa funzione la potevo usare se in una select avessi trovato in un campo dei record vuoti li avrei potuti sostituire con una parola ad esempio:

select Cognome, coelesce(Nome, 'Vuoto') from miatabella

con questa query dove trova i campi vuoto nella colonna Nome li sostituisce con la parola Vuoto.
Invece in Sql server sembra avere un altro significato......che non ho capito bene!!
chi mi aiuta? ma soprattutto esiste una funzione che mi fa il lavoro della coelesce conosciuta da me?

saluti a tutti
Enzo

alx_81 Profilo | Guru

Ciao!

la COALESCE in SQL ti serve per ricavare il primo dei campi non null passati alla funzione:

ad esempio:

SELECT COALESCE(campo1, campo2, campo3) as RISULTATO FROM Tabella1


ti ritorn o campo1 o campo2 o campo3, nella stessa colonna, facendo il controllo per ogni riga...
prendi la tabella di esempio:

Tabella1
campo1 campo2 campo3
null null 1
2 null 3
null 4 null


SELECT COALESCE(campo1, campo2, campo3) as RISULTATO FROM Tabella1
ti ritorna

RISULTATO
--------------------
1
2
4




Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

capito grazie e per fare ciò che intendevo io c'è un altra funzione?

alx_81 Profilo | Guru

Se per vuoto intendi NULL, c'è la ISNULL

SELECT ISNULL(campo1, VALORENONNULL) FROM Tabella1

Se invece intendi blank (''), no.. te la defi fare come user defined function..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

infatti io intendevo proprio il blank

alx_81 Profilo | Guru

Allora scrivi questa funzione:
CREATE FUNCTION IsEmptyValue ( @fieldvalue as varchar(1024), @newvalue as varchar(1024) ) RETURNS varchar(1024) AS BEGIN IF RTRIM(@fieldvalue) = '' set @fieldvalue=@newvalue RETURN @fieldvalue END

poi usala così:
select dbo.isEmptyValue('','esempio') as prova
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

questa è una funzione da salvare i sql server?

edit: si

non avevo mai pensato a questa prospettiva, che manuale usi su sql server, oppure me ne consigli qualcuno?

alx_81 Profilo | Guru

su sql server 2005 non ho ancora trovato molto..
ne ho uno in inglese sui SQL Serve Integration Services..
ma non so se ti interessa..

Cmq sia, l'utilizzo massiv è utilissimo =)
funziona la funzione=))))?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

si grazie funziona, SQL Serve Integration Services?tratta proprio lo studio di funzioni?

alx_81 Profilo | Guru

no, sono i nuovi dts, tra l'altro, se vuoi darci un occhio, sono quelli di cui parlo nel mio blog..=) (pubblicità)

se la risposta ti è servita, ti chiedo, cortesemente di accettarla!! =)
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

bene andrò a leggere l'articolo allora mi mandi il link?
grazie

alx_81 Profilo | Guru

eh eh eh.. la mia firma..
sono fermo da un po' perchè ho fatto un incidente, ma da lunedì ricomincio.. =)
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5