带有if语句的游标

时间:2011-01-17 09:11:14

标签: sql cursor

如果表没有修复,我怎么能写光标。 E.g

DECLARE cursor_1 CURSOR
FOR 
 IF BEGIN @i=1 SELECT col1,col2 FROM table_1 END
 ELSE BEGIN SELECT col1,col2 FROM table_2 END

...

这会出现语法错误,请提示?

2 个答案:

答案 0 :(得分:2)

如果你写的正确的话,这确实有效!

IF @i=1
 declare cur cursor for
  SELECT col1,col2 FROM table_1
ELSE
 declare cur cursor for
  SELECT col1,col2 FROM table_2

答案 1 :(得分:0)

他是一个丑陋的黑客,你可能会更好地使用动态SQL,或者以更合理的方式重写它,但是:

DECLARE cursor_1 CURSOR
FOR 
  SELECT col1, col2 FROM table_1
  WHERE @i = 1
  UNION
  SELECT col1, col2 FROM table_2
  WHERE @i = 2