webForumDet fria alternativet

Trubbel med case i sql-server...

4 svar · 330 visningar · startad av inspiro

inspiroMedlem sedan sep. 2005673 inlägg
#1

Försöker göra en sql-sats som ser ut så här (har försökt med lite olika alternativ, även if och else):

INSERT INTO tabell (column) 
	VALUES     (case when @variabel = 1 then (column + 1) else (column - 1) end)

"column" är en int. Jag får det här felet: The name "column" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted. Fattar att det ahr nåt med (column + 1) att göra... jag vill alltså sätta det befintliga värdet plus 1 som det nya värdet!

headbugMedlem sedan sep. 2006867 inlägg
#2

Du säger att du vill lägga till ett nytt värde i en kolum som heter "column" men det får en kolumn inte heta, det är ett reserverat ord. Döp om den till ett icke-reserverat ord så kommer detta felmeddelandet att ordna sig.

inspiroMedlem sedan sep. 2005673 inlägg
#3

den heter inte column, jag bara skrev det i mitt exempel, kanske va dumt. Men ja, jag vill alltså lägga till 1 på det värde som redan finns i kolumnen! Fungerar inte. Men skriver jag:

"case when @variabel = 1 then 1 else 2 end" så funkar det så problemet är alltså hur jag ska kunna lägga till 1 på det befintliga värdet...

@ndersMedlem sedan juni 200032 969 inlägg
#4

Om det redan finns ett värde i kolumnen är det ju inte insert, utan update du ska använda.

inspiroMedlem sedan sep. 2005673 inlägg
#5

Åhh... :r

257 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
129 ms — hämta forumlista (db)
126 ms — hämta statistik (db)
120 ms — hämta tråd, inlägg och bilagor (db)