oracle声明变量integer用作计数器

时间:2013-05-13 10:50:20

标签: oracle plsql

有没有人能告诉我如何在Oracle中运行这种类型的MySQL样式查询?

SET @counter = 0;

SELECT (@counter+1) AS rowCount, t.username FROM USER AS t

我见过各种显示DECLARE或DEFINE的例子以及

之类的内容
DECLARE
counter SMALLINT := 0;

SELECT (counter+1) AS rowCount, t.username FROM USER AS t

但是它们似乎都不起作用,我只是继续收到关于'错误的错误从命令的第1行开始:'(不是很有帮助!)。

此致

KS

1 个答案:

答案 0 :(得分:2)

DECLARE是匿名PL / SQL块的开始,您的SELECT也需要在BEGINEND之间。但你也需要选择一些东西。

如果您只想查看所选行的连续行数,可以使用rownum pseudocolumn

SELECT rownum AS rowCount, t.username FROM USER t

(您也不能使用AS t,只能使用AS来对列进行别名...)

此方法适用于您的最终目标,您可以将substrrownum

连接起来
SELECT rownum AS rowCount, t.username,
    substr(t.username, 1, 5) || rownum as newname
FROM USER t

但实际上不要使用reserved word作为表名。