Oracle-sql查询,用于在没有数字数据类型列时打印奇数行
我试图从我的表中打印奇数行,而不借助数字克隆 当我尝试执行这个查询时,我只得到第一行Oracle-sql查询,用于在没有数字数据类型列时打印奇数行,sql,oracle,mod,Sql,Oracle,Mod,我试图从我的表中打印奇数行,而不借助数字克隆 当我尝试执行这个查询时,我只得到第一行 select * from emp3 where mod(rownum,2)=1; emp3是我的表名。 当我使用其中一个数值列代替rownum时,我得到了所需的输出 select * from emp3 where mod(eid,2)=1 order by eid; 其中,eid是表中的数字列。 但是如果我没有数字列,并且只想打印表中奇数行,该怎么办? 救救我 如果EID列不是数字,则使用数字。例如,R
select * from emp3 where mod(rownum,2)=1;
emp3是我的表名。
当我使用其中一个数值列代替rownum时,我得到了所需的输出
select * from emp3 where mod(eid,2)=1 order by eid;
其中,eid是表中的数字列。
但是如果我没有数字列,并且只想打印表中奇数行,该怎么办?
救救我 如果EID列不是数字,则使用数字。例如,ROW_NUMBER提供了这样的信息:
SQL> with temp as
2 (select empno, ename, job sal,
3 row_number() over (order by null) rn
4 from emp
5 )
6 select *
7 from temp
8 where mod(rn, 2) = 1;
EMPNO ENAME SAL RN
---------- ---------- --------- ----------
7369 SMITH CLERK 1
7521 WARD SALESMAN 3
7654 MARTIN SALESMAN 5
7782 CLARK MANAGER 7
7839 KING PRESIDENT 9
7876 ADAMS CLERK 11
7902 FORD ANALYST 13
7 rows selected.
SQL>
甚至您已经尝试使用的ROWNUM:
SQL> with temp as
2 (select empno, ename, job sal,
3 rownum rn
4 from emp
5 )
6 select *
7 from temp
8 where mod(rn, 2) = 1;
EMPNO ENAME SAL RN
---------- ---------- --------- ----------
7369 SMITH CLERK 1
7521 WARD SALESMAN 3
7654 MARTIN SALESMAN 5
7782 CLARK MANAGER 7
7839 KING PRESIDENT 9
7876 ADAMS CLERK 11
7902 FORD ANALYST 13
7 rows selected.
SQL>
如果EID列不是数字,则使用数字。例如,ROW_NUMBER提供了这样的信息:
SQL> with temp as
2 (select empno, ename, job sal,
3 row_number() over (order by null) rn
4 from emp
5 )
6 select *
7 from temp
8 where mod(rn, 2) = 1;
EMPNO ENAME SAL RN
---------- ---------- --------- ----------
7369 SMITH CLERK 1
7521 WARD SALESMAN 3
7654 MARTIN SALESMAN 5
7782 CLARK MANAGER 7
7839 KING PRESIDENT 9
7876 ADAMS CLERK 11
7902 FORD ANALYST 13
7 rows selected.
SQL>
甚至您已经尝试使用的ROWNUM:
SQL> with temp as
2 (select empno, ename, job sal,
3 rownum rn
4 from emp
5 )
6 select *
7 from temp
8 where mod(rn, 2) = 1;
EMPNO ENAME SAL RN
---------- ---------- --------- ----------
7369 SMITH CLERK 1
7521 WARD SALESMAN 3
7654 MARTIN SALESMAN 5
7782 CLARK MANAGER 7
7839 KING PRESIDENT 9
7876 ADAMS CLERK 11
7902 FORD ANALYST 13
7 rows selected.
SQL>
尝试执行下面的查询
select * from (select rownum rn ,column from column_name) where mod(rn,2) <> 0
请参考此链接以更好地理解rownum的概念。请尝试执行以下查询
select * from (select rownum rn ,column from column_name) where mod(rn,2) <> 0
请参考此链接以更好地理解rownum的概念,这没有多大意义。在关系数据库中,将行视为basked中的球。哪一个是奇怪的?你必须有能告诉你这些信息的东西。在您的篮子表中,它是EID列。那么,你为什么不使用它呢?@Littlefoot有时eid可能是数字和阿拉法比的混合体,那么我必须做什么呢?让我重新表述一下@Littlefoot的问题。假设您所有的id都是字母,而不是数字。没有其他包含数字的列。表中的奇数行和偶数行是什么意思?表中的行没有序号:这是第一行,这是第二行;这是第三次,这是第四次。问题是,如何定义奇数行?我举了几个例子说明在这种情况下可能会做什么。看一看拜托,这没什么意义。在关系数据库中,将行视为basked中的球。哪一个是奇怪的?你必须有能告诉你这些信息的东西。在您的篮子表中,它是EID列。那么,你为什么不使用它呢?@Littlefoot有时eid可能是数字和阿拉法比的混合体,那么我必须做什么呢?让我重新表述一下@Littlefoot的问题。假设您所有的id都是字母,而不是数字。没有其他包含数字的列。表中的奇数行和偶数行是什么意思?表中的行没有序号:这是第一行,这是第二行;这是第三次,这是第四次。问题是,如何定义奇数行?我举了几个例子说明在这种情况下可能会做什么。看一看拜托。我喜欢你关于奇数行的评论,没有比这个答案更有意义-我喜欢你关于奇数行的评论,没有比这个答案更有意义-