CASE语句 - 使THEN显示来自另一列的信息

时间:2017-07-24 13:36:18

标签: sql sql-server database

早上好,全部,

我对案例陈述有疑问。让我建立一个我很难过的场景。假设我们有一张包含所有提供商许可证的表格。每个提供商可以拥有从一个到多个许可证的任何地方。我想创建一个case语句,基本上说当提供者许可类型等于此时,然后显示来自这个不同列的许可证号,其中包含数字值。

希望这是有道理的。我不希望它显示诸如THEN'初级保健医生'之类的字样,而是希望它在那时提供实际的许可证号码。

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

只需使用文档中描述的CASE语法:https://www.postgresql.org/docs/7.4/static/functions-conditional.html

CASE WHEN license_type = 1 THEN license_number_column_a
     WHEN license_type = 2 THEN license_number_column_b
END

答案 1 :(得分:0)

我觉得您正在尝试使用像

这样的代码
Case licence_type 
when 1 then licence_number_column_a
when 2 then licence_number_column_b
... 
End

此类案例仅在评估常量时有效。 在评估列时,需要将测试移至“when”

Case  
when licence_type = 1 then licence_number_column_a
when licence_type = 2 then licence_number_column_b
... 
End