Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql查询结果中创建临时序列列?_Sql_Oracle - Fatal编程技术网

如何在sql查询结果中创建临时序列列?

如何在sql查询结果中创建临时序列列?,sql,oracle,Sql,Oracle,我有一张像这样的桌子 NAME AGE james 22 ames 12 messi 32 .... .... 我可以使用从emp中选择姓名、年龄查询此表 现在我想要的是在name之前有一个额外的列,如果查询返回N行,那么这个列将是1,2,3..N SEQUENCE NAME AGE 1 james 22 2 ames 12 3 messi 32 4 .... .... 我怎样才能做到这一点?你可以试试 Select R

我有一张像这样的桌子

NAME    AGE
james   22
ames    12
messi   32
....
....
我可以使用
从emp中选择姓名、年龄查询此表

现在我想要的是在name之前有一个额外的列,如果查询返回N行,那么这个列将是1,2,3..N

SEQUENCE    NAME    AGE
1    james  22
2    ames   12
3    messi  32
4    ....
    ....
我怎样才能做到这一点?

你可以试试

Select ROWNUM sequence, name , age from emp;

对于查询返回的每一行,ROWNUM伪列返回一个数字,该数字指示Oracle从表或一组连接行中选择该行的顺序。选定的第一行的ROWNUM为1,第二行的ROWNUM为2,依此类推。

如果您只想添加一列,该列将在显示时包含序号(而不是实际将该数据存储在表中),则可以使用
ROWNUM
伪列或
row\u number()
分析函数

select row_number() over(order by name) seq
     , name
     , age
  from your_table

      SEQ NAME               AGE
---------- ----------- ----------
         1 ames                12
         2 james               22
         3 messi               32
上述查询的输出按
NAME
排序,但您可以按所需的任何列或列的组合排序

第二种方法是使用
rownum
pseudocolumn。结果也按名称排序

 select rownum seq
      , name
      , age
   from ( select name
               , age
           from your_table
          order by name
         )



       SEQ NAME               AGE
---------- ----------- ----------
         1 ames                12
         2 james               22
         3 messi               32

我对甲骨文知之甚少。但要得到行号真的很简单!但是,当使用rownum处理应该排序的结果时,或者当您对它们有条件时,请务必小心。第一种解决方案的优点是可以跨多种DBMSI进行移植,而不是第二种方法。heximal编写了更简单的查询,使用rownum@Thinker子查询为我们提供一组有序的(按
名称
列)数据。然后,外部查询使用
rownum
对有序数据集进行编号。如果您不想要有序的结果集,可以用表名替换子查询。但是如果没有排序,例如rownum 1可以被分配给oracle决定首先选择的任何行。我找不到row_number()函数,mysql也无法识别这个函数。在这种情况下我能做什么。你想让结果集有序吗?不,没有这样的条件。