下面是我的一个SQL语句:
select slb.zbh as ZBH, slb.x as X,slb.m as M,
slb.xzz as XZZ,slb.lxdh as LXDH,xbb.mc as XB,
hkszddmb.printmc AS PRINTMC, TO_CHAR(slb.csny,'YYYY-MM-DD') as CSNY,
hyzkb.mc as HYZK,mzb.mc as MZ,sqlbb.mc as SQLB,whcdb.mc as WHCD,
zzmmb.mc as ZZMM
from slb,hkszddmb,xbb,hyzkb,mzb,sqlbb,whcdb,zzmmb
where slb.HKSZD=hkszddmb.dm and slb.xb=xbb.dm and
slb.hyzk= hyzkb.dm and slb.mzdm=mzb.dm and
slb.sqlb=sqlbb.dm and slb.whcd=whcdb.dm
and slb.zzmm=zzmmb.dm and slb.shbzh='132045670831211'比如:slb.mzdm=mzb.dm
如果slb.mzdm本身没有数值的话,整个SQL语句就查不到,我想的是没有数值的话就显示空
字段都有数值的记录就可以查到,但不全的话就查不到。如何解决?
select slb.zbh as ZBH, slb.x as X,slb.m as M,
slb.xzz as XZZ,slb.lxdh as LXDH,xbb.mc as XB,
hkszddmb.printmc AS PRINTMC, TO_CHAR(slb.csny,'YYYY-MM-DD') as CSNY,
hyzkb.mc as HYZK,mzb.mc as MZ,sqlbb.mc as SQLB,whcdb.mc as WHCD,
zzmmb.mc as ZZMM
from slb,hkszddmb,xbb,hyzkb,mzb,sqlbb,whcdb,zzmmb
where slb.HKSZD=hkszddmb.dm and slb.xb=xbb.dm and
slb.hyzk= hyzkb.dm and slb.mzdm=mzb.dm and
slb.sqlb=sqlbb.dm and slb.whcd=whcdb.dm
and slb.zzmm=zzmmb.dm and slb.shbzh='132045670831211'比如:slb.mzdm=mzb.dm
如果slb.mzdm本身没有数值的话,整个SQL语句就查不到,我想的是没有数值的话就显示空
字段都有数值的记录就可以查到,但不全的话就查不到。如何解决?
select ... from ...
where field is null
你的意思我明白,但转化成0的话,必须是要在mzb代码表中再加一条记录。
比如
DM MC
0 未指明
是必须这样吗?
如果不想加这样一条记录,怎么解决? 谢谢了to feels30000(船长)
LEFTJOIN怎么用?能否具体说明? 谢谢了
或者用标准的join语法。
在Oracle中:
SELECT S.SSN AS SSN,
FNAME, LNAME
FROM STUDENT_ADMIN.STUDENT S,
DEPT_ADMIN.CLASS C,
STUDENT_ADMIN.GRADE G
WHERE S.SSN = G.SSN(+)
AND G.CCODE = C.CCODE(+)在sql server中:
SELECT S.SSN AS SSN,
FNAME, LNAME
FROM STUDENT_ADMIN.GRADE G
RIGHT OUTER JOIN
STUDENT_ADMIN.STUDENT S
ON G.SSN = S.SSN
LEFT OUTER JOIN
DEPT_ADMIN.CLASS C
ON G.CCODE = C.CCODE
这里(+)的意思是如果slb.mzdm有,但mzb.dm没有相应的值也取该记录,当然mzb表的要列的相应
字段就都为空;oracle是支持这种方式的,不过你的我就不知道了