-1
我有要求在哪裏顯示一列作爲Carryover/new。在SQL select中添加一個自定義邏輯
邏輯如下。
如果顏色存在於調色板中,那麼將列'開發類型'標記爲新的其他結轉。 我試圖使用假設的表結構和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查詢設置整個結果列的值
未來,請格式化您的問題,就像我一樣。這使得它非常可讀。 –