>

다음 열이 있는데 B는 부울을 나타내고 나머지는 빈 값입니다. 이 항목의 모든 값을 COLUMN A라는 단어로 변경해야합니다.

 COLUMN
  -----

   B

예를 들어 다른 일을 시도했습니다

SELECT COLUMN 
 FROM TABLE
 WHERE COALESCE(NULLIF(COLUMN,''), 'COLUMN A');

그리고 "BOOLEAN"함수의 문자열 인수에 잘못된 문자가 있습니다. "라는 오류 메시지가 나타납니다. 나는이 질문에 붙어 있어이 부울 값과 혼동되고 있습니다. 누군가 나를 도와 줄 수 있다면 정말 기쁠 것입니다.

  • 답변 # 1

    가장 쉬운 것은 CASE 표현식을 사용하는 것입니다. db2에 익숙하지 않으므로 추가로 조사하고 싶을 수도 있지만 다른 DBMS에서는 다음과 같이 작동합니다.

    선택 사례     COLUMN = ''THEN 'COLUMN A'-COLUMN = ''인 경우 'COLUMN A'로 교체     ELS COLUMN-그렇지 않으면 COLUMN을 그대로 유지하십시오.     'COLUMN'으로 종료-결과의 열 이름을 'COLUMN' 테이블에서

    이 기사는 db2에서 작동하는 방법을 설명하는 기사입니다. https://www.ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/db2z_caseexpression.html

  • 답변 # 2

    WHERE 절이 완료되지 않았습니다. COALESCEd 값을 다음과 비교하십시오.

    SELECT COLUMN 
     FROM TABLE
     WHERE COALESCE(NULLIF(COLUMN,''), 'COLUMN A') = 'COLUMN A';
    
    

    또는 더 낫다 :

    SELECT COLUMN 
     FROM TABLE
     WHERE COLUMN IS NULL OR COLUMN = ''
    
    

    선택 로직을 해결하기 위해 어떤 사고/계산이 필요하지 않습니다. 동료 개발자를 위해 유지 관리가 용이하고 훌륭합니다.

    * 위의 내용은 부울 데이터 유형과 관련이없는 일반적인 경우 (일반적으로 다른 처리가 필요함)에 대한 일반적인 조언입니다.

    <시간>

    이제 값을 무언가로 바꿔야한다고 말합니다. UPDATE 문이 필요합니다. 이 열이 부울 인 경우 빈 문자열 값이 없습니다. 공백은 null입니다.

    UPDATE TABLE SET COLUMN = (some boolean) WHERE COLUMN IS NULL
    
    

    테이블 데이터를 영구적으로 변경하지 않고 대신 공백이 발생하는 일부 값으로 선택하려고하지만 공백을 테이블에 저장 한 경우 :

    SELECT COALESCE(column, (some boolean)) FROM TABLE
    
    

    모든 버전의 DB2가 결과 세트에서 부울을 리턴 할 수있는 것은 아니라는 점에 주목할 필요가있다. 이는 데이터베이스 벤더에서 매우 일반적이다. DB2 버전이 제한되어있는 경우 대소 문자를 사용하여 부울을 다른 표현 가능한 것으로 변환하십시오.

    SELECT CASE WHEN column = TRUE THEN 'true' ELSE 'false' END FROM TABLE
    
    

관련 자료

  • 이전 C ++ sdl 창 정지 및 sdl 관련 문제
  • 다음 python 3.x - Xarray를 사용하여 NetCDF에서 Proleptic Gregorian으로 시간 업데이트