source

기본적으로 Oracle 주문 NULL LAST

manycodes 2023. 2. 10. 22:08
반응형

기본적으로 Oracle 주문 NULL LAST

Oracle에서 사용하는 기본 순서 쿼리에 입력하지 않고 NULL LAST(또는 NULL FIRST)로 설정하는 방법이 있습니까?

아니요, 및 의 기본 동작을 변경할 수 없습니다.

오름차순의 경우 NULLS LAST가 기본이고 내림차순의 경우 NULLS FIRST가 기본입니다.


변경이 불가능하다는 것을 증명할 수는 없지만, 가장 구현 가능성이 높은 부분에서는 이러한 기능을 찾을 수 없습니다.

SQL 옵션 매뉴얼에는 아무것도 기재되어 있지 않습니다.

파라미터의 nls 파라미터는 없습니다.V$PARAMETER제어:select * from v$parameter where name like '%nls%';

숨겨진 매개 변수 숨겨진 매개 변수는 없습니다.%null% 또는 %sort%와 같은 항목을 검색하려고 했지만 관련성이 없는 것 같습니다.

Locale Builder Oracle을 사용하면 사용자 정의 정렬을 만들있습니다.여기에는 많은 옵션이 있지만 NULL 정렬 방법을 정의할 수 있는 옵션은 없습니다.메이저 소트 및 마이너소트 번호를 정말 높거나 낮게 설정해도 변경되지 않습니다(NULL이 하드 코드화된 작은 값 또는 큰 값으로 구현되어 있기를 희망했습니다).0x0000의 정렬 순서('NULL')를 설정할 수 있지만 이는 다른 유형의 NULL입니다.

아니요, 를 사용하지 않고 기본 주문을 활성화할 수 없습니다.order byclause를 사용하면NULL마지막 또는 첫 번째입니다.다음은 예를 제시하겠습니다.

  1. 오름차순

    SQL> with t1(col) as(
      2    select 1    from dual union all
      3    select 2    from dual union all
      4    select null from dual union all
      5    select 3    from dual
      6  )
      7  select *
      8    from t1
      9  order by col asc nulls last
      10  ;
    

    결과:

      COL
      ------
       1
       2
       3
       null
    
  2. 내림차순

      SQL> with t1(col) as(
       2    select 1    from dual union all
       3    select 2    from dual union all
       4    select null from dual union all
       5    select 3    from dual
       6  )
       7  select *
       8    from t1
       9  order by col desc nulls last
      10  ;
    

    결과:

      COL
      ----------
       3
       2
       1
       null
    

NULL 값은 항상 오름차순으로 마지막에 정렬됩니다.

ORDER BY EMPLOYER_NAME DESC NULLS LAST

Oracle 11g에서는 위의 내용이 유효했습니다.

COALESCE 함수

아직 아무도 언급하지 않은게 놀랍지만 당신은 그것을 사용할 수 있다.COALESCE인수에서 첫 번째 비필수 값을 추출하는 함수입니다.대부분의 DBMS에서 사용 가능:

SELECT [Name], [Email] FROM Users
ORDER BY COALESCE([Name], 'zzz')

기본적으로는 [Name]이(가)null레코드가 아래로 밀리면 함수가 'zzz'를 반환합니다.그것은 대부분의 장면에서 효과가 있다.매뉴얼은 이쪽입니다.

에 늘을 넣으면서도 asc에 따라 주문하려면:

SELECT * FROM users ORDER BY -created_at desc;

응답 소스

언급URL : https://stackoverflow.com/questions/18698311/oracle-order-null-last-by-default

반응형