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

or与in的查询结果怎么不同?
SELECT   UnitCode,FieldCode,DataValue    
FROM   DX_F2_Data  
WHERE   统计管理部门   in   ( '311513115001 ',   '311513115002 '   , '311513115003 '   )
AND   FieldCode   in( 'C012 ')  
AND   DataTime= '200703 '

SELECT   UnitCode,FieldCode,DataValue,统计管理部门  
FROM   DX_F2_Data  
WHERE   统计管理部门= '311513115001 '   OR   统计管理部门= '311513115002 '   OR   统计管理部门= '311513115003 '  
AND   FieldCode   in   ( 'C012 ')  
AND   DataTime= '200703 '

这两句sql语句查询结果怎么不同啊?
好像第一句把FieldCode不等于C012的也查询出来了!

------解决方案--------------------
--改改

SELECT UnitCode,FieldCode,DataValue
FROM DX_F2_Data
WHERE 统计管理部门 in ( '311513115001 ', '311513115002 ' , '311513115003 ' )
AND FieldCode in( 'C012 ')
AND DataTime= '200703 '

SELECT UnitCode,FieldCode,DataValue,统计管理部门
FROM DX_F2_Data
WHERE (统计管理部门= '311513115001 ' OR 统计管理部门= '311513115002 ' OR 统计管理部门= '311513115003 ' )
AND FieldCode in ( 'C012 ')
AND DataTime= '200703 '

------解决方案--------------------
-->


SELECT UnitCode,FieldCode,DataValue,统计管理部门
FROM DX_F2_Data
WHERE (统计管理部门= '311513115001 '
OR 统计管理部门= '311513115002 '
OR 统计管理部门= '311513115003 ' )
AND FieldCode in ( 'C012 ')
AND DataTime= '200703 '
------解决方案--------------------
只能接点分~~
------解决方案--------------------
相信楼主已经明白了,接分
------解决方案--------------------
and的优先级比or高