Discussione:
concatenare stringhe in SQL SERVERs
(troppo vecchio per rispondere)
Pennarelli
21 anni fa
Permalink
SALVE ho questo problema:
devo concatenare due campi di un record per creare una view in sql
server 2000 ma quando uno dei due campi è null il risultato del
concatenamento è null!! contriariamente a quello che accadeva in Access

Esempio:
record-> cognome nome
mario rossi
verdi
giulia


se scrivo lo statment SELECT nome + cognome AS pippo il risultato è

PIPPO
mario rossi
null
null

potete aiutarmi?
Grazie

Inviato da www.mynewsgate.net
Luca Bianchi
21 anni fa
Permalink
Post by Pennarelli
devo concatenare due campi di un record per creare una view in sql
server 2000 ma quando uno dei due campi è null il risultato del
concatenamento è null!! contriariamente a quello che accadeva in Access
potete aiutarmi?
Questo comportamento è controllato dall'opzione

SET CONCAT_NULL_YIELDS_NULL

che può essere impostata a ON (valore di default) oppure a OFF. Con il
comportamento predefinito, quindi, un valore NULL concatenato con un
qualsiasi valore da il risultato NULL. Piuttosto però che modificare questa
impostazione è preferibile utilizzare una funzione dove è ritenuto
opportuno. In particolare la funzione ISNULL ti permette di specificare una
stringa che verrà restituita qualora il valore passato come argomento sia
NULL. Applicando la funzione ISNULL al nome, sostituendo gli eventuali
valori NULL con una stringa vuota, la query sarebbe

SELECT Cognome + ' ' + ISNULL(Nome, '') AS Nominativo
FROM Tabella
Post by Pennarelli
Grazie
Ciao
--
Luca Bianchi
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
ITHost
21 anni fa
Permalink
Post by Pennarelli
devo concatenare due campi di un record per creare una view in sql
server 2000 ma quando uno dei due campi è null il risultato del
concatenamento è null!! contriariamente a quello che accadeva in Access
record-> cognome nome
mario rossi
verdi
giulia
se scrivo lo statment SELECT nome + cognome AS pippo il risultato è
PIPPO
mario rossi
null
null
potete aiutarmi?
puoi utilizzare questa sinstassi:

SELECT ISNULL([nome],'') + ' ' + ISNULL([cognome],'') AS pippo
--
ITHost (your host company)
Technical Manager
C. Paparelli (MCSE,MCSD,MCDBA)

http://www.ithost.ch
pretore
21 anni fa
Permalink
Post by ITHost
Post by Pennarelli
devo concatenare due campi di un record per creare una view in sql
server 2000 ma quando uno dei due campi è null il risultato del
concatenamento è null!! contriariamente a quello che accadeva in Access
record-> cognome nome
mario rossi
verdi
giulia
se scrivo lo statment SELECT nome + cognome AS pippo il risultato è
PIPPO
mario rossi
null
null
potete aiutarmi?
SELECT ISNULL([nome],'') + ' ' + ISNULL([cognome],'') AS pippo
Ho un problema analogo, ma non legato alla concatenazione di stringhe.
Devo creare una classifica (vedi Serie A di calcio) prendendo i
risultati delle partite. Quando però una condizione non si verifica (ad
esempio una squadra non perde mai in trasferta, la query con campi di
aggregazione - SUM - non mi dà risultato). Come posso uscirne fuori? La
soluzione che finora adotto (e non funziona) è:
SELECT squadraB, SUM(puntisquadraB) AS punti, COUNT(squadraB) AS vinte
FROM partita
WHERE (golsquadraB > golsquadraA)
GROUP BY squadraB

Ottavio

Loading...