webForumDet fria alternativet
Logga in / Bli medlem

kolla om en parameter är tom

Databaser & SQL

3 svar · 245 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Trådstart#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.

Medlem sedan juni 200032 967 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
Medlem 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! :)

Medlem sedan juni 200032 967 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
378 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
117 ms — deklarationer (db)
124 ms — hämta statistik (db)
123 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)