1
我有以下查詢:SQL同時更新與如果條件
Declare @cnt as int
Declare @int as int
Set @int = 0
Select @cnt =COUNT(Date) FROM tmp
While @int < @cnt
Begin
If (Select Datepart(MM,Start_Time) from dbo.tmp)>='00' and (Select Datepart(MM,Start_Time) from dbo.tmp)<'15'
Set tmp.Start_Int = Datepart(HH,Start_Time)+'00'
else If (Select Datepart(MM,Start_Time) from dbo.tmp)>='15' and (Select Datepart(MM,Start_Time) from dbo.tmp)<'30'
Set tmp.Start_Int = Datepart(HH,Start_Time)+'15'
else If (Select Datepart(MM,Start_Time) from dbo.tmp)>='30' and (Select Datepart(MM,Start_Time) from dbo.tmp)<'45'
Set tmp.Start_Int = Datepart(HH,Start_Time)+'30'
else If (Select Datepart(MM,Start_Time) from dbo.tmp)>='45' and (Select Datepart(MM,Start_Time) from dbo.tmp)<='59'
Set tmp.Start_Int = Datepart(HH,Start_Time)+'45'
end
正如你所看到的,我想這取決於它落在更新Start_Int其適當的間隔。使用這個,我得到一個錯誤,說''附近的語法不正確。我可以假設這個查詢是不正確的,但我找不到任何一個while查詢的例子,如果條件滿足,它使用select來更新一個字段。
Start_Int從表中可以dbo.tmp。我正在嘗試更新此字段,其中start_times符合if條件。 – Jessica
然後你需要更新tmp表,而不是插入它。 – amelvin
但是你還需要一個出你的while循環的方法,所以我想你在設置Start_Int值時需要做set @ cnt = @ cnt + 1。 – amelvin