webForumDet fria alternativet

Trubbel med case i sql-server...

Databaser & SQL

4 svar · 330 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#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!

Medlem 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.

Medlem 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...

Medlem sedan juni 200032 967 inlägg
#4

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

Medlem sedan sep. 2005673 inlägg
#5

Åhh... :r

138 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)