当前位置: 代码迷 >> Sql Server >> 一个sql语句,看不大明白解决办法
  详细解决方案

一个sql语句,看不大明白解决办法

热度:45   发布时间:2016-04-24 10:00:35.0
一个sql语句,看不大明白
SELECT outid as StudentCode,name,status as flag,CASE SEX WHEN '1' THEN '男' WHEN '0' THEN '女' END AS sex,
(SELECT DISTINCT b.dpname1 FROM BASE_CUSTDEPT AS b WHERE SUBSTRING(a.CUSTDEPT, 1, 2) = b.DPCODE1 
and (case SUBSTRING(CUSTDEPT,3,2) when '' Then '00' else SUBSTRING(CUSTDEPT,3,2) end )=b.DPCODE2) as deptno, 
(SELECT DISTINCT case b.dpname2 when '00' then 'unkown' else b.dpname2 end FROM BASE_CUSTDEPT AS b 
WHERE SUBSTRING(a.CUSTDEPT, 1, 2) = b.DPCODE1 
and (case SUBSTRING(CUSTDEPT,3,2) when '' Then '00' else SUBSTRING(CUSTDEPT,3,2) end )=b.DPCODE2) as typeno 
FROM BASE_CUSTOMERS as a where scardsnr='9D2487B8';

第一个SUBSTRING内还指明了是a这张表,第二个没指明是哪张表,这样也可以?

------解决思路----------------------
比如 
select   a.NAME  FROM  tb a
也可以 
 select name from tb a 

------解决思路----------------------
如果多个表中只有一个表有 CUSTDEPT,不加前缀也可以。
不过不建议这样写,人工阅读会有歧义,不方便维护。
  相关解决方案