programing

Oracle에서 두 열을 하나의 열로 비교하는 방법

iphone6s 2023. 3. 23. 22:23
반응형

Oracle에서 두 열을 하나의 열로 비교하는 방법

두 열에 Oracle에서 동일한 데이터가 포함되어 있는지 여부를 나타내는 열을 SELECT 쿼리에 추가하는 방법을 알 수 없습니다.

다음과 같은 질문을 쓰고 싶습니다.

select column1, column2, column1=column2 from table

이 테이블이 있으면

+---------+---------+
| column1 | column2 |
+---------+---------+
| value1  | value1  |
| value2  | value3  |
| value4  | value4  |
+---------+---------+

다음과 같은 결과를 얻을 수 있습니다.

+---------+---------+-----------------+
| column1 | column2 | column1=column2 |
+---------+---------+-----------------+
| value1  | value1  | true            |
| value2  | value3  | false           |
| value4  | value4  | true            |
+---------+---------+-----------------+

이를 위한 올바른 구문은 무엇입니까?

null 값도 동일하게 간주하려면 다음을 수행하십시오.

select column1, column2, 
   case
      when column1 is NULL and column2 is NULL then 'true'  
      when column1=column2 then 'true' 
      else 'false' 
   end 
from table;

사용을 중지했습니다.DECODE휴대할 수 없기 때문에 몇 년 전에요.또, 이것은, 보다 유연성이 낮고, 가독성이 떨어집니다.CASE/WHEN.

단, NULL을 처리하는 방법 때문에 디코딩에서 할 수 있는 깔끔한 "꼼수"가 하나 있습니다.디코딩에서는 NULL은 NULL과 동일합니다.이를 이용하여 다음과 같이 두 열이 다른지 여부를 확인할 수 있습니다.

select a, b, decode(a, b, 'true', 'false') as same
  from t;

     A       B  SAME
------  ------  -----
     1       1  true
     1       0  false
     1          false
  null    null  true  
select column1, coulumn2, case when colum1=column2 then 'true' else 'false' end from table;

HTH

언급URL : https://stackoverflow.com/questions/4827751/how-to-select-the-comparison-of-two-columns-as-one-column-in-oracle

반응형