Case语句中的子查询使用外部select语句

时间:2016-04-14 22:17:26

标签: sql sql-server subquery case

我有两张桌子,如下图所示

enter image description here

我需要编写一个select查询,当遇到来自P11或P12类别的Mat_Name,并且除了'B111'以外的任何其他四个字符(例如AA-1234-B333),它应该给出Mat_Num的其他Mat_Name具有相同的前八个字符,但是'B111'作为其最后4个字符,即。如果是AA-1234-B333,则应将Mat_Num返回为123456,即AA-1234-B111的Mat_Num,而不是114466.

我正在考虑使用下面的查询,但后来我无法弄清楚从外部select到Matc语句中的Mat_Name的传递值(以获得正确的Mat_Num)。

select tbl1.Mat_Name,
CASE  
    When (tbl2.Category IN ('P11','P12')) AND (RIGHT(tbl.Mat_Name,4) <> 'B111') THEN (Select tbl1.Mat_Num from tbl1 where ... ),
 tbl2.Category
from tbl1
INNER JOIN tbl2 ON tb1.Mat_Num = tbl2.Mat_Num

0 个答案:

没有答案
相关问题