Oracle: 'order by' 절이 있는 행 번호 표시
가 order를 사용하는 sql 문에 대한 행 번호를 어떻게 출력할 수 있는지 궁금합니다.현재 저는 시도했습니다.ROWNUM
하지만 제가 알기로는 정렬되지 않은 결과 세트에만 작동합니다.
SELECT rownum, a.lg_id, a.full_name, a.sort_order
FROM activity_type_lang a
where a.lg_id = 'en'
order by a.full_name;
TIA
쿼리를 중첩하는 것 외에도 분석 기능을 사용할 수 있습니다.
SELECT row_number() OVER (ORDER BY a.full_name),
lg_id,
full_name,
sort_order
FROM activity_type_lang a
WHERE a.lg_id = 'en'
ORDER BY a.full_name
또한 분석 기능을 사용하면 침목 처리 방법을 변경하려는 경우 더 쉽게 처리할 수 있습니다.대체할 수 있습니다.ROW_NUMBER
랭크 또는DENSE_RANK
.
이미 해결책을 찾은 것 같군요
Select rownum, lg_id, full_name, sort_order from
(SELECT a.lg_id, a.full_name, a.sort_order
FROM activity_type_lang a
where a.lg_id = 'en'
order by a.full_name);
주문하기 전에 rownum이 적용되므로 rownum, xxx.*을 다시 작성해야 합니다. (SELECT a.lg_id, a.full_name, a.lg_order FROM activity_type_message a.lg_id = 'en' order by a.full_name ) xxxx;
안녕하세요. 가 order를 사용하는 sql 문에 대한 행 번호를 어떻게 인쇄할 수 있는지 궁금합니다.현재 저는 ROWNUM을 시도했지만 제가 알기로는 정렬되지 않은 결과 세트에만 작동합니다.
분명히 하기 위해 (누군가가 잘못 이해할 수도 있습니다)그것은 효과가 있습니다(그러나 당신이 기대하는 방식은 아닙니다).문제는 정렬 전에 ROWNUM을 "부착"하고 기록은 얻지만 연속적인 ROWNUM 기록은 얻지 못한다는 것입니다. 왜죠?왜냐면
select 문에서 where 기준을 충족하는 첫 번째 레코드는 rownum=1입니다.
이것은 선택/주문 메커니즘이 어떻게 작동하는지에 대한 정말 좋은 예입니다.
언급URL : https://stackoverflow.com/questions/1377825/oracle-display-row-number-with-order-by-clause
'programing' 카테고리의 다른 글
Oracle에서 IPv4/IPv6 주소 표시 (0) | 2023.07.21 |
---|---|
루비에서 기호를 해시 키로 사용하는 이유는 무엇입니까? (0) | 2023.07.21 |
Tomcat에 배포된 스프링 부트는 404개를 제공하지만 독립 실행형으로 작동합니다. (0) | 2023.07.21 |
@Spring Boot 2.6.0에서 실패한 테스트에서 자동 구성 사용(=... 제외) (0) | 2023.07.21 |
오라클 인덱스 열 값이 null인 경우는 언제입니까? (0) | 2023.07.21 |