日期:2014-05-19  浏览次数:20833 次

如何解释ISNULL() IN??
ISNULL(a.fheadselfs0241,0) IN (11414,9637,0)
这个语句该如何解释?ISNULL(a.fheadselfs0241,0)我知道是什么意思,但加了后面的IN (11414,9637,0)就不知道该如何理解了,新手第一次在CSDN提问,希望各位大虾不吝赐教,小弟先谢过!


完整的代码如下: 方便的话顺便也帮我看一下是什么WHERE后面的条件是什么意思,因为里面的OR和AND实在太多了,我看得都晕了,感激涕零。

SELECT a.fempid,a.fbillno,fheadselfs0238,fheadselfs0246,fheadselfs0242,b.fitemid,b.funitid,b.fqty,b.famount,a.fbillerid,b.fstockid FROM seoutstock a join seoutstockentry b on a.finterid=b.finterid 
WHERE a.fdate between @begdate and @enddate
and fheadselfS0245=40261
and (isnull(a.fheadselfs0241,0) in (11414,9637,0) or a.fempid not in (7481,6709,10460) and a.fheadselfs0241 in (9704,9635)) 
and a.ftrantype=83 AND a.fstatus!=0


------解决方案--------------------
就是指ISNULL(a.fheadselfs0241,0) 的结果是11414,9637,0三者之一
------解决方案--------------------
SQL code
ISNULL(a.fheadselfs0241,0) --如果fheadselfs0241为NULL值,则返回0,否则返回fheadselfs0241
IN (11414,9637,0) --以上返回值包含11414,9637,0这三个值的筛选出来.

------解决方案--------------------
都是基本的邏輯關係式.ISNULL(a.fheadselfs0241,0) IN (11414,9637,0) 就是ISNULL(a.fheadselfs0241,0)的值在 in 後面的括弧內才返回真.