>

Oracle SQL을 사용하고 있으며 여기 내 테이블이 있습니다 :

영화 (카탈로그 번호, 형식, 제목, 연도, 디스크 번호, 등급, 타이밍, 장르)

정격의 일부 값이 null 인 경우 모든 null 값을 텍스트 NR로 어떻게 변경할 수 있습니까?

여기에 시도한 것이 있지만 (NVL, RATING, 'NR') 대신 NR의 열 제목을 어떻게 평가할 수 있습니까?

SELECT RATING, nvl(RATING,'NR')
FROM FILM
WHERE RATING IS NULL;
RATING        NVL(RATING,'NR
------------- -----------------
              NR
              NR
              NR

감사합니다!


  • 답변 # 1

    결과의 각 열에 이름을 지정할 수 있습니다 :

    SELECT
      rating AS rating_with_nulls,
      NVL(rating, 'NR') AS rating
    FROM film
    ORDER BY rating_with_nulls;
    
    
    이것을 열 별명이라고합니다. 와이즈 비즈  선택 사항입니다.

    https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#SQLRF01702 문서의 구문 다이어그램에서 찾을 수 있습니다. "select_list"를 찾으면 AS 가 표시됩니다 . 이 다이어그램에 익숙해지는 데 시간이 다소 걸릴 수 있지만 실제로 도움이됩니다.

    때때로 결과를 열처럼 명명하는 것은 좋은 생각이 아닙니다. 위의 예에서 expr [AS] c_alias 가 있다면 어떨까요 ? 무엇을 ORDER BY rating  인용하다? 원래 열 또는 널이 'NR'로 대체되는 표현식 결과?

    rating  그건 그렇고 오라클에 따라 다릅니다. 이 상황에 대한 표준 SQL 함수는 NVL 입니다. . COALESCE 를 사용해도됩니다 하지만 오라클 만이 다른 DBMS에서 무엇을 사용해야하는지 항상 아는 것이 좋습니다.

  • 답변 # 2

    NVL 사용

    coalesce()
    
    

    평가 열은 varchar 데이터 형식이어야합니다

    또는 select coalesce(rating,'NR') 사용

    NVL
    
    

    string1이 null 인 경우 반환되는 값입니다.

  • 답변 # 3

    영화에서 nvl (rating, 'Nr') 평가 선택

    NVL( string1, replace_with )

관련 자료

  • 이전 javascript - Regex를 사용하여 변수를 documentgetElementById에 전달
  • 다음 R에서는 조건에 따라 열을 2 열로 나눕니다