필자는 Carryover/new로 열을 표시해야하는 요구 사항이 있습니다.SQL에 사용자 정의 논리 추가하기
논리는 다음과 같습니다.
색상이 팔레트에있는 경우 'Dev type'열을 새로운 else carryover로 표시하십시오. 가상의 테이블 구조와 simillar 쿼리를 사용하여 비즈니스 시나리오를 작성하려고했습니다.
래 테이블
ID PalName year
1 Pal 1 2017
2 Pal 2 2016
3 pal 3 2017
4 pal 4 2016
5 pal 5 2017
컬러 테이블
ID Color name requestedpalette
1 Red pal 1, pal 5,
2 Green na,
3 Black na,pal 1,pal 3
시즌 표
ID Color ID Palette ID Season name
1 1 3 Summer
2 2 4 Winter
쿼리
WITH masterdata AS
(SELECT season name,
color name,
season.is AS SeasonID,
color.id AS ColorID
FROM season
INNER JOIN color ON color.id=season.colorid
INNER JOIN palette ON palette.id=season.paletteid
WHERE palette.year=2017)
SELECT colorname,
CASE
WHEN EXISTS
(SELECT 1
FROM masterdata
WHERE ',' || color.requestedpalette LIKE '%,' || masterdata.PalName || ',%') THEN 'New'
ELSE 'Carryover'
END DevelopmentType
FROM color
는 WITH
를 사용하지 않고 위를 가져 오기 위해 더 좋은 방법이 있나요? SQL 쿼리에 설정된 전체 결과에 따라 컬럼의 값을 설정하는 방법
미래에는 내가했던 것처럼 질문을 형식화하십시오. 그게 정말 읽을 수 있습니다. –