日期:2014-05-18  浏览次数:20516 次

求判断数据库栏位是否为空和null语句
if   (select   T_EXP_ORDER.CNTT_NO     FROM     T_EXP_ORDER   INNER   JOIN
                                                    T_AC_EXP_ACHIEVE   ON  
                                                    T_EXP_ORDER.PROD_CLASS_ID   =   T_AC_EXP_ACHIEVE.PROD_CLASS_ID   INNER
                                                      JOIN
                                                    T_PROD_CLASS   ON  
                                                    T_EXP_ORDER.PROD_CLASS_ID   =   T_PROD_CLASS.PROD_CLASS_ID   )= ' '
begin
      PRINT     'S '
end
else
    PRINT     'T '
我想T_EXP_ORDER.CNTT_NO判断他的栏位为=‘’和null显示S
否的时候显示T
怎么同时满足null和‘’

------解决方案--------------------
if (select ISNULL(T_EXP_ORDER.CNTT_NO, ' ') FROM T_EXP_ORDER INNER JOIN
T_AC_EXP_ACHIEVE ON
T_EXP_ORDER.PROD_CLASS_ID = T_AC_EXP_ACHIEVE.PROD_CLASS_ID INNER
JOIN
T_PROD_CLASS ON
T_EXP_ORDER.PROD_CLASS_ID = T_PROD_CLASS.PROD_CLASS_ID )= ' '
begin
PRINT 'S '
end
else
PRINT 'T '

------解决方案--------------------
if isnull(select T_EXP_ORDER.CNTT_NO FROM T_EXP_ORDER INNER JOIN
T_AC_EXP_ACHIEVE ON
T_EXP_ORDER.PROD_CLASS_ID = T_AC_EXP_ACHIEVE.PROD_CLASS_ID INNER
JOIN
T_PROD_CLASS ON
T_EXP_ORDER.PROD_CLASS_ID = T_PROD_CLASS.PROD_CLASS_ID, ' ')= ' '
begin
PRINT 'S '
end
else
PRINT 'T '
------解决方案--------------------
if not exist (select T_EXP_ORDER.CNTT_NO FROM T_EXP_ORDER INNER JOIN
T_AC_EXP_ACHIEVE ON
T_EXP_ORDER.PROD_CLASS_ID = T_AC_EXP_ACHIEVE.PROD_CLASS_ID INNER
JOIN
T_PROD_CLASS ON
T_EXP_ORDER.PROD_CLASS_ID = T_PROD_CLASS.PROD_CLASS_ID )
begin
PRINT 'S '
end
else
PRINT 'T '