Oracle- sql 查询在我们没有数字数据类型列时打印奇数行
Oracle- sql query to print odd number of rows when we do not have number data type columns
我试图从我的 table 中打印奇数行,而没有借助我的数字 cloumns
当我尝试执行此查询时,我只得到第一行。
select * from emp3 where mod(rownum,2)=1;
emp3 是我的 table 名字。
当我使用数字列之一代替 rownum
时,我得到了所需的输出。
select * from emp3 where mod(eid,2)=1 order by eid;
其中 eid 是 table 中的数字列。
但是,如果没有数字列并且我只想打印 table 中的奇数行怎么办?
帮帮我!
如果 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
请参考这个link以更好地理解rownum
https://www.youtube.com/watch?v=QMyw1jumGyQ
的概念
我试图从我的 table 中打印奇数行,而没有借助我的数字 cloumns
当我尝试执行此查询时,我只得到第一行。
select * from emp3 where mod(rownum,2)=1;
emp3 是我的 table 名字。
当我使用数字列之一代替 rownum
时,我得到了所需的输出。
select * from emp3 where mod(eid,2)=1 order by eid;
其中 eid 是 table 中的数字列。 但是,如果没有数字列并且我只想打印 table 中的奇数行怎么办? 帮帮我!
如果 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
请参考这个link以更好地理解rownum
https://www.youtube.com/watch?v=QMyw1jumGyQ