带 if 语句的游标

发布于 2024-10-12 12:14:31 字数 210 浏览 5 评论 0原文

当表未修复时,如何写入游标。 例如

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

...

这给出了语法错误,请提出建议?

How can i write cursor when table is not fix.
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

...

This gives syntax error please suggest ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖伴 2024-10-19 12:14:31

如果你写得正确的话,这实际上是有效的!

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

This actually works, if you write it correctly!

IF @i=1
 declare cur cursor for
  SELECT col1,col2 FROM table_1
ELSE
 declare cur cursor for
  SELECT col1,col2 FROM table_2
是伱的 2024-10-19 12:14:31

这是一个丑陋的黑客,你可能会更好地使用动态 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 

his is an ugly hack, and you'd possibly be better with dynamic SQL, or re-writing this in a more sensible way, but:

DECLARE cursor_1 CURSOR
FOR 
  SELECT col1, col2 FROM table_1
  WHERE @i = 1
  UNION
  SELECT col1, col2 FROM table_2
  WHERE @i = 2 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文