SQL server语句中where 1<0 是什么意思?
SQLserver语句中where1<0是什么意思?完整代码是:select@name=NamefromUserswhere1<0加了这个where1<0和没加都一样!是...
SQL server语句中where 1<0 是什么意思?
完整代码是:
select @name= Name from Users where 1<0
加了这个where 1<0 和没加都一样!是不是如果加了where 1<0 ,得先给@name赋值一个值,如果查询没有结果按照给的那个值去进行查询? 展开
完整代码是:
select @name= Name from Users where 1<0
加了这个where 1<0 和没加都一样!是不是如果加了where 1<0 ,得先给@name赋值一个值,如果查询没有结果按照给的那个值去进行查询? 展开
2个回答
展开全部
1<0显然是不成立的,还有种写法是1=1。。。其实就是个绝对假和绝对真的返回
这么写的目的要看情况。。比如我在后台程序中拼接SQL的时候会写1=1。。。那么我拼接的时候可以直接连 AND+条件表达式就行了。。而不用判断是否第一个条件,是应该写WHERE还是写AND
而1<0这种永假写法一般用来获取结构,你这些的SQL执行出来是不会有返回数据集的,但是会把表结构,比如表列数,列名返回回来。。 也可以直接用来创建一个和你读取的表结构一样的新表
这么写的目的要看情况。。比如我在后台程序中拼接SQL的时候会写1=1。。。那么我拼接的时候可以直接连 AND+条件表达式就行了。。而不用判断是否第一个条件,是应该写WHERE还是写AND
而1<0这种永假写法一般用来获取结构,你这些的SQL执行出来是不会有返回数据集的,但是会把表结构,比如表列数,列名返回回来。。 也可以直接用来创建一个和你读取的表结构一样的新表
更多追问追答
追问
不好意思我写错了!如果加了wihle 1<0,根据存在变量@name中的数据去查询什么都没有,那也就是条件不成立,@name中是null,如果加了while 1<0,在前面给一个@name='aa',条件不成立时,吧aa当作@name的值去查询,如果不给@name值,不添加while 1<0,@name 的值应该是查询出来的数据集中的最后一个值,
是这样吗?如果这样while不就没用了吗?直接给@name='aa'不就行了?
追答
不是很明白你的意思。。while 1<0和前面的@name= Name 并没有关系。。。@name= Name 是把查出来的字段值赋给变量@NAME,WHERE 1<0是针对整条查询语句而言的。。。你这条语句就等于把@NAME赋值为NULL了吧。。或者空。。具体你可以打印出来看看。。和前面的@NAME是否有值,值是多少应该并无关系
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询