小编Abh*_*bhi的帖子

在 SELECT 中处理多个 CASE 语句的有效方法

我运行了一份报告,在该报告中,我遇到了一种情况,即基于基本上是键或 Id 的列值,我需要从映射 Id 表中获取相应的值。像下面这样:

    SELECT
     (case when [column1='A'] then (select value from Table1) 
           when [column1='B'] then (select value from Table2) 
           when [column1='C'] then (select value from Table3)

           and so on uptil 35 more 'when' conditions ...

  ELSE column1 end) Value 
from Table1
Run Code Online (Sandbox Code Playgroud)

更确切地说:

SELECT 
(case when [A.column1='1'] 
then (select value from B where B.clientId=100 and A.column1=B.Id) 
when [A.column1='2'] 
then (select value from C where C.clientId=100 and A.column1=C.Id) 
when [A.column1='3'] 
then (select value from D where D.clientId=100 and A.column1=D.Id) 
... …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2016

4
推荐指数
1
解决办法
5万
查看次数

标签 统计

sql-server ×1

sql-server-2016 ×1