使用T-SQL在游标中使用Case

时间:2010-12-14 08:02:42

标签: sql sql-server tsql

使用下面的代码,我想做一个“切换”,检查字段值并根据值设置另一个字段。我必须为每一行做这个,然后它在光标中。但缺少一些东西......

感谢您的帮助

DECLARE @Res int
OPEN MyCursor;

 FETCH NEXT FROM MyCursor 
 INTO @field1, @field2, @field3, @field4

 WHILE @@FETCH_STATUS = 0
 BEGIN
  SELECT
  CASE @field1
   WHEN 'A' THEN @Res = 1
   WHEN 'B' THEN @Res = 2
   WHEN 'C' THEN @Res = 3
   WHEN 'D' THEN @Res = 4
   WHEN 'E' THEN @Res = 5
  END

  FETCH NEXT FROM MyCursor 
  INTO @field1, @field2, @field3, @field4

 END

CLOSE MyCursor;

1 个答案:

答案 0 :(得分:3)

要解决您的问题,请执行以下操作:

SELECT @Res = 
  CASE @field1
   WHEN 'A' THEN 1
   WHEN 'B' THEN 2
   WHEN 'C' THEN 3
   WHEN 'D' THEN 4
   WHEN 'E' THEN 5
  END

你想用@Res做什么?为什么你认为你需要一个光标?