增加PL / SQL中的变量/计数器选择结果

时间:2012-03-16 11:45:34

标签: oracle

一个相当愚蠢的问题。我有一个带产品的Oracle Db,现在读出前10个产品。

我现在想要以下显示

1 Product A
2 Product XY
3 Product B

愚蠢的问题,但如何让柜台在前面?我显然必须增加,但我不明白它是如何工作的。我还想过使用WITH和tmp表,但无法弄清楚如何设置它。

SELECT POS ???, PRODUCTNAME FROM TBLPRODUCT

我对PL / SQL不太熟悉。有人能给我一个暗示吗?非常感谢。

2 个答案:

答案 0 :(得分:7)

ROWNUM是Bob所示的一种方法,但是如果您使用的是更复杂的查询 - 特别是如果您明确地排序行 - 它可能无法提供您想要的结果。

如今,分析函数通常是一种更好的方法,因为您可以明确控制排序:

SELECT ROW_NUMBER() OVER (ORDER BY productname), productname
  FROM tableproduct
  ORDER BY productname

请注意,确定行号的行的顺序与整个结果集的顺序是分开的。在这个例子中,我使用了与您可能想要的相同的顺序,但值得注意的是,这为您提供了更大的灵活性。

(并且道歉有点迂腐,但这与PL / SQL无关,PL / SQL是Oracle中嵌入的过程语言。这只是关于Oracle的SQL实现。)

答案 1 :(得分:5)

使用ROWNUM,如

SELECT ROWNUM, PRODUCTNAME FROM TBLPRODUCT

分享并享受。