Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Oracle 分区超过行数时出错_Oracle - Fatal编程技术网

Oracle 分区超过行数时出错

Oracle 分区超过行数时出错,oracle,Oracle,我正在创建一个子查询来选择某一列上的不同条目,DIS_COL,然后返回这些不同条目的所有其他列,任意选择第一行 为此,我创建了一个子查询,使用over-partitionby只选择第一行,然后从该子查询中进行选择 但是,我的代码有一个错误;“ORA-00923:FROM关键字未在预期位置找到” 我的代码如下: select * from ( select *, row_number() over (partition by DIS_COL order by COL_2)

我正在创建一个子查询来选择某一列上的不同条目,DIS_COL,然后返回这些不同条目的所有其他列,任意选择第一行

为此,我创建了一个子查询,使用over-partitionby只选择第一行,然后从该子查询中进行选择

但是,我的代码有一个错误;“ORA-00923:FROM关键字未在预期位置找到”

我的代码如下:

select *
from (
   select *,
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE
   ) as rows
where row_number = 1
AND CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2';
如何更正代码以达到预期的结果


我正在处理Oracle数据库。

这不是行号,而是
*,
向子查询添加别名:

select *
from (
   select T.*, -- here
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE
   )T as rows -- and here
where row_number = 1
AND CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2';

这不是行号,而是
*,
向子查询添加别名:

select *
from (
   select T.*, -- here
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE
   )T as rows -- and here
where row_number = 1
AND CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2';

这不是行号,而是
*,
向子查询添加别名:

select *
from (
   select T.*, -- here
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE
   )T as rows -- and here
where row_number = 1
AND CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2';

这不是行号,而是
*,
向子查询添加别名:

select *
from (
   select T.*, -- here
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE
   )T as rows -- and here
where row_number = 1
AND CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2';

作为行删除
。表/查询别名的语法不正确。它是列别名的语法

select *
from (
   select T.*, 
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE t
   ) 
where row_number = 1
AND (CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2');

作为行删除
。表/查询别名的语法不正确。它是列别名的语法

select *
from (
   select T.*, 
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE t
   ) 
where row_number = 1
AND (CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2');

作为行删除
。表/查询别名的语法不正确。它是列别名的语法

select *
from (
   select T.*, 
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE t
   ) 
where row_number = 1
AND (CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2');

作为行删除
。表/查询别名的语法不正确。它是列别名的语法

select *
from (
   select T.*, 
          row_number() over (partition by DIS_COL order by COL_2) as row_number --ORDER BY FIELD DETERMINES WHICH ROW IS THE FIRST ROW AND THUS WHICH ONE IS SELECTED.
   from MY_TABLE t
   ) 
where row_number = 1
AND (CRITERIA_COL = 'CRIT_1'
OR CRITERIA_COL_2 = 'CRIT_2');

谢谢,这很有道理。不幸的是,我现在在“as行”中的“as”上遇到了一个“sql命令未正确结束”错误。不知道为什么。我尝试过明确地命名子查询中的所有列(例如,T.DIS_COL),但这不起作用。你知道我遗漏了什么吗?我不确定Oracle中的“显式命名”是什么(我在google中没有找到),你能提供更多关于你想要实现什么的信息吗?因为如果只是运行查询,根本不需要“作为行”。谢谢,这很有意义。不幸的是,我现在在“as行”中的“as”上遇到了一个“sql命令未正确结束”错误。不知道为什么。我尝试过明确地命名子查询中的所有列(例如,T.DIS_COL),但这不起作用。你知道我遗漏了什么吗?我不确定Oracle中的“显式命名”是什么(我在google中没有找到),你能提供更多关于你想要实现什么的信息吗?因为如果只是运行查询,根本不需要“作为行”。谢谢,这很有意义。不幸的是,我现在在“as行”中的“as”上遇到了一个“sql命令未正确结束”错误。不知道为什么。我尝试过明确地命名子查询中的所有列(例如,T.DIS_COL),但这不起作用。你知道我遗漏了什么吗?我不确定Oracle中的“显式命名”是什么(我在google中没有找到),你能提供更多关于你想要实现什么的信息吗?因为如果只是运行查询,根本不需要“作为行”。谢谢,这很有意义。不幸的是,我现在在“as行”中的“as”上遇到了一个“sql命令未正确结束”错误。不知道为什么。我尝试过明确地命名子查询中的所有列(例如,T.DIS_COL),但这不起作用。你知道我遗漏了什么吗?我不确定Oracle中的“显式命名”是什么(我在google中没有找到),你能提供更多关于你想要实现什么的信息吗?因为如果只是运行查询,则根本不需要“作为行”。