webForumDet fria alternativet

kolla om en parameter är tom

3 svar · 245 visningar · startad av inspiro

inspiroMedlem sedan sep. 2005673 inlägg
#1

Hej! Jag har en sql update med ett några parametrar:

UPDATE tabell SET a= @a, b= @b, c= @c WHERE x = y

Men om exempelvis parameter "c" är tom så skulle jag vilja hoppa över just den inserten. Man kan väl ha någon slags if-sats i sql men jag får inte till det riktigt?

använder sql server express.

@ndersMedlem sedan juni 200032 969 inlägg
#2

Beror väl lite på vad du menar med tom, men...
Är det null du pratar om så kan du använda COALESCE.

UPDATE tabell SET a= @a, b= @b, c= COALESCE(@c, c) WHERE x = y
inspiroMedlem sedan sep. 2005673 inlägg
#3

Med tom menar jag inte null utan att den inte innehåller någon text, alltså exempelvis string param = "";

Ska testa ditt exempel direkt! :)

@ndersMedlem sedan juni 200032 969 inlägg
#4

Om det är tom sträng du vill jämföra med borde det kunna se ut så här:

UPDATE tabell SET a= @a, b= @b, 
c= CASE WHEN @c = '' THEN c ELSE @c END 
WHERE x = y
128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)