Использование Case в курсоре с T-SQL - PullRequest
0 голосов
/ 14 декабря 2010

Используя приведенный ниже код, я бы хотел сделать «переключатель», проверить значение поля и установить другое поле в зависимости от значения.Я должен сделать это для каждой строки, то это в курсоре.Но чего-то не хватает ...

Спасибо за помощь

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 Ответ

3 голосов
/ 14 декабря 2010

Чтобы исправить вашу непосредственную проблему, вы должны сделать следующее:

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?И почему вы думаете, что вам нужен курсор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...