[SQL] 어떻게 오라클의 테이블에서 레코드를도 선택?
SQL어떻게 오라클의 테이블에서 레코드를도 선택?
나는 그것을 더 행을 표시하지 않더라도 reslut에 records.but 번호 검색 쿼리 아래 사용하고 있습니다
select ename,job from emp where mod(rownum,2)=0;
왜 모드 (ROWNUM, 2) 여기서 상태에서 작동하지 않습니다
U는 홀수 레코드를 선택하는 쿼리를 적어주세요 수 있습니다
해당 쿼리와 아무것도 잘못이 있습니까?
SUGGETIONS은 제발 ..
해결법
-
==============================
1.첫 번째 행의 ROWNUM은, MOD (ROWNUM, 2)이 경우, 1과 1이고, 당신의 문 MOD입니다 (ROWNUM, 2) = 0부터 다음이 1 = 0과에 감소 : 때문에 작동하지 않습니다 열은 폐기된다. 이후의 행은 하나의 ROWNUM 대해 테스트된다 (이전 행이 더 이상 출력이며, 행 번호가 없기 때문)를 다시 테스트를 실패하고 폐기. 반복, 광고 nauseum 모든 행은 WHERE 테스트를 실패하고 삭제됩니다.
첫 번째 행의 ROWNUM은, MOD (ROWNUM, 2)이 경우, 1과 1이고, 당신의 문 MOD입니다 (ROWNUM, 2) = 0부터 다음이 1 = 0과에 감소 : 때문에 작동하지 않습니다 열은 폐기된다. 이후의 행은 하나의 ROWNUM 대해 테스트된다 (이전 행이 더 이상 출력이며, 행 번호가 없기 때문)를 다시 테스트를 실패하고 폐기. 반복, 광고 nauseum 모든 행은 WHERE 테스트를 실패하고 삭제됩니다.
MOD (ROWNUM, 2) = 1 WHERE 당신은 홀수 행을 사용하여이 방법을 얻을하려고하면 다음 행이 시험을 실패하고 쿼리에 포함되지 않습니다, 첫 번째 행에만 두 번째 및 후속 반환합니다.
Vijaykumar Hadalgi에서 알 수 있듯이, 당신은 행을 제한하는 (이 절을 제한하려면 어디없이 모든 행 번호를 수) 하위 쿼리에서 ROWNUM을 선택하고 외부 쿼리에서 테스트를 수행해야합니다 :
SELECT ename, job FROM ( SELECT ename, job, ROWNUM AS row_id -- Generate ROWNUM second. FROM ( SELECT ename, job FROM Emp ORDER BY ename -- ORDER BY first. ) ) WHERE MOD( row_id, 2 ) = 0; -- Filter third.
SQLFIDDLE
-
==============================
2.이 시도
이 시도
행 세부 사항의 짝수 번호를 찾으려면이 코드를 사용할 수 있습니다. 이 사람은 오라클 SQL뿐만 아니라 MySQL은 편안합니다.
select * from (select ename,job, ROWNUM AS rn from emp) where mod(rn, 2) = 0;
행 세부 사항의 ODD 번호를 찾으려면이 코드를 사용할 수 있습니다.
select * from (select ename,job, ROWNUM AS rn from emp) where mod(rn, 2) <> 0;
-
==============================
3.
-- for selecting rows 1,3,5,7.... SELECT EMPLOYEE_ID,FIRST_NAME, LAST_NAME FROM ( SELECT DENSE_RANK OVER(ORDER BY EMPLOYEE_ID)AS RANK, EMPLOYEE_ID, FIRST_NAME, LAST_NAME FROM EMPLOYEES ) WHERE MOD(RANK,2)=1 -- for selecting rows 2,4,6,8.... SELECT EMPLOYEE_ID,FIRST_NAME, LAST_NAME FROM ( SELECT DENSE_RANK OVER(ORDER BY EMPLOYEE_ID)AS RANK, EMPLOYEE_ID, FIRST_NAME, LAST_NAME FROM EMPLOYEES ) WHERE MOD(RANK,2)=0
-
==============================
4.
select * from emp where empid in (select decode(mod(rownum,2),0, empid,null) from emp); --Alternate record Even numbered
테이블에서조차 기록을 가져 오기
-
==============================
5.또는 당신이 시도 할 수 있습니다 :
또는 당신이 시도 할 수 있습니다 :
여기에 내부 쿼리는 우리가 모든 기록 정보를 얻을 수에 따라 모든 짝수 기록 기본 키 값을 가져옵니다.
SELECT * FROM EMP WHERE EMPNO IN ( SELECT CASE MOD(ROWNUM,2) WHEN 0 THEN EMPNO END FROM EMP );
이것은 모든 홀수 기록을 가져옵니다
SELECT * FROM EMP WHERE EMPNO IN ( SELECT CASE MOD(ROWNUM,2) WHEN 1 THEN EMPNO END FROM EMP );
-
==============================
6.이 할 것입니다 :
이 할 것입니다 :
Select * from (Select rownum as No_of_Row, E.* from emp E) Where mod(No_of_Row,2)=0;
-
==============================
7.
SELECT empno,ename,slno FROM ( SELECT empno,ename,ROW_NUMBER() OVER (ORDER BY empno desc) AS slno FROM emp ) result WHERE mod(slno,2) = 1;
-
==============================
8.쿼리 아래를 사용하여,
쿼리 아래를 사용하여,
select * from (select ename,job, ROWNUM as row_id from emp) where mod(row_id, 2) = 0;
-
==============================
9.행 NUM 원래 테이블없는 결과 테이블의 행 번호를 나타낸다. 그래서 먼저 ROW_ID 또는 변수 사용이 변수에 할당합니다.
행 NUM 원래 테이블없는 결과 테이블의 행 번호를 나타낸다. 그래서 먼저 ROW_ID 또는 변수 사용이 변수에 할당합니다.
-
==============================
10.시도하십시오 :
시도하십시오 :
select * from emp where (rowid,0) in (select rowid, mod(rownum,2) from emp)
산출:- 이 4 6
Select * from emp where (rowid,1) in (select rowid, mod(rownum,2) from emp);
출력 : 1,3,5 ..
또는이 작동합니다
이 :
홀수 :
select * from ( SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber', FROM table1 ) d where (RowNumber % 2) = 1
도 :
select * from ( SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber', FROM table1 ) d where (RowNumber % 2) = 0
from https://stackoverflow.com/questions/20014495/how-to-select-even-records-from-a-table-in-oracle by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 자바에서 당신 쿼리 개체 컬렉션 (기준 / SQL과 같은)? (0) | 2020.05.10 |
---|---|
[SQL] 설치를 필요로하지 않는 경량 SQL 데이터베이스 [폐쇄] (0) | 2020.05.10 |
[SQL] 어떻게 HSQLDB 데이터베이스의 모든 테이블을 볼 수? (0) | 2020.05.10 |
[SQL] JDBC를 사용하여 정수 열을 널 삽입 (0) | 2020.05.10 |
[SQL] CASE WHEN 문 ORDER BY 절에 대한 (0) | 2020.05.10 |