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,不加前缀也可以。
不过不建议这样写,人工阅读会有歧义,不方便维护。