在Oracle SQL中,如果要选择由多个(Case when)派生的唯一行,可以使用子查询和分组来实现。
以下是一种可能的解决方案:
SELECT column1, column2, column3
FROM (
SELECT column1, column2, column3,
ROW_NUMBER() OVER (PARTITION BY column1, column2, column3 ORDER BY column1) AS row_num
FROM (
SELECT column1, column2, column3,
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
ELSE value3
END AS derived_column
FROM your_table
) t
) t2
WHERE row_num = 1;
解释:
derived_column
,根据具体的条件和值进行计算。ROW_NUMBER()
函数和PARTITION BY
子句来对派生的行进行编号,按照column1, column2, column3
进行分组,并按照column1
的顺序进行排序。这种方法可以在Oracle SQL中选择由多个(Case when)派生的唯一行。请注意,这只是一种解决方案,具体的实现可能因数据模型和具体需求而有所不同。
推荐的腾讯云相关产品:腾讯云数据库 TencentDB,提供高性能、高可用的数据库服务,支持多种数据库引擎,适用于各种应用场景。
产品介绍链接地址:腾讯云数据库 TencentDB
领取专属 10元无门槛券
手把手带您无忧上云