我有三个专栏:我正在尝试编写一个查询,根据优先级显示三列中的一个值,因此只需要显示其中一列的值,优先级是description、name和id。
我的问题是,如果缺少描述或更多,则需要显示一条消息,说明第一个可用选项,后跟一段文本,其中包含有关空列或空列的信息。
示例:如果缺少描述,则应显示:name(未给出描述)如果缺少名称和描述,则应显示:id(未给出名称和描述)如果缺少代码、名称和描述,则应显示:未给出ID、名称和说明
最好,它应该能够处理id和description缺失的情况,或者只有name缺失的情况,并且理想情况下还可以扩展到三列以上。
你会怎么做呢?我试着对每一个组合都使用CASE语句,但如果扩展到三列以上,那很快就会成为一个问题,所以我想知道是否有更聪明的解决方案?
先谢了!
1条答案
按热度按时间jgwigjjp1#
您可能需要一个
CASE
表达式,但它不需要很复杂:从这里开始,只需将每个附加列添加到
coalesce()
调用和case
表达式中的另一个when
行: