1: where DEP = NULL 应改为 where DEP is null
2: and (0<>0) 相当于 and 1=2 即条件不可能成立,其实就是不查任何资料
Select * from DEPT Where DEP=NULL and (0 <> 0)
相当于 select top 0 * from DEPT3: and (1=1) 跟不加是一样的,即条件永远成立,其实就是只按前面的条件来查。SELECT Count(*) From VDTL VDTL ,VHED VHED Where (VDTL.Acc_No >= '1001') And (VDTL.Acc_No <= '1131') And (VHED.MAK_DAT >= '10/01/2003') And (VHED.MAK_DAT <= '10/31/2003') And ( VDTL.MAK_NO = VHED.MAK_NO ) and(1=1)
相当于
SELECT Count(*) From VDTL VDTL ,VHED VHED Where (VDTL.Acc_No >= '1001') And (VDTL.Acc_No <= '1131') And (VHED.MAK_DAT >= '10/01/2003') And (VHED.MAK_DAT <= '10/31/2003') And ( VDTL.MAK_NO = VHED.MAK_NO ) 4:如上写法主要是为了与前台查询条件配合使用。
2: and (0<>0) 相当于 and 1=2 即条件不可能成立,其实就是不查任何资料
Select * from DEPT Where DEP=NULL and (0 <> 0)
相当于 select top 0 * from DEPT3: and (1=1) 跟不加是一样的,即条件永远成立,其实就是只按前面的条件来查。SELECT Count(*) From VDTL VDTL ,VHED VHED Where (VDTL.Acc_No >= '1001') And (VDTL.Acc_No <= '1131') And (VHED.MAK_DAT >= '10/01/2003') And (VHED.MAK_DAT <= '10/31/2003') And ( VDTL.MAK_NO = VHED.MAK_NO ) and(1=1)
相当于
SELECT Count(*) From VDTL VDTL ,VHED VHED Where (VDTL.Acc_No >= '1001') And (VDTL.Acc_No <= '1131') And (VHED.MAK_DAT >= '10/01/2003') And (VHED.MAK_DAT <= '10/31/2003') And ( VDTL.MAK_NO = VHED.MAK_NO ) 4:如上写法主要是为了与前台查询条件配合使用。
解决方案 »
- 求助:通过日报表和投产表求尾数的查询
- SQL08报表导出成excel的问题
- 看到各位老大贴sql代码都格式的很漂亮,是怎么弄的
- 1个存储过程的问题
- win2003上安装sql2000,打过sp4补丁。企业管理器无法访问
- 请教小问题,100份
- 如何将文本文件倒入SQLSERVER的库作为一个表?
- 各位星星,看看这个问题,好不好.有做过这方面的,给点提示.http://community.csdn.net/Expert/topic/4996/4996245.xml?temp=.9174311
- SQL server agent问题,可能很简单
- 请高手帮帮忙。oracle中的number型数据是怎么存储的?
- 如何用VPN连接远程SQL Server?
- 请问如何方便的取出一个字段的相邻的值
意味着0不等于0,<>是不等于的意思,0不等于0它的条件是永远不成立的
后面的1=1那就是永真条件
如果你的sql语句是动态生成的
如
"select * from dbtable where 1=1 " + ls_condition 防止 ls_condition 为空字符串 ,sql 语句产生语法错误!