5、SQL Server Select中的Where条件

Select中的Where条件

一、使用查找条件 Between

:用于测试给定的值是否在指定的范围内,是个闭区间。

注:Between查找条件常用于日期

SQL SERVER的GetDate(),获取日期和时间,该函数的时间精度为3毫秒

月日年

如:Between  ‘07/01/01’ and ‘07/31/01’

等同于:07/01/01  00:00:00.000 <= T <= 07/31/01  00:00:00.000

但是这样会丢失2001年7月31日  00:00:00.000之后的所有行。

如果想根据完整的日期和时间正确地选择所有的行,必须在最后一个参数中包含当天

最后的时间。

如:Between ‘1/1/1’and  ‘1/1/1  11:59:59.998 pm’

这样可查出 1/2/1  00:00:00.000的行。

SQL Server自动将指定的结束时间调整为最接近的3毫秒刻度。

同理,数据类型为SmallDateTime的列也存在这样的问题(精度为分钟)

二、使用In查找条件  in

In查找条件类似于比较运算符Equals,但查找与列表中的值匹配的内容,如果给定

的值位于列表中,比较结果将为真。

1、in查找条件相当于多个or组合在一起的Equals比较

where name in (‘Tom’,’Mike’)

相当于

where name =’Tom’ or name=’Mike’

2、可以结合使用运算符in和out来排除特定的行。

name not in (‘John’,’Timo’)

注:证明否定条件比较骓,尤其是涉及空值时。空值(null)的含义是“未知”

,而不是空字符串:‘ ’

如:

select 'in' where 'A' not in ('B',null)

因为null未知,所以SQL不能在逻辑上证明‘A’不在列表中,所以返回false,

select也就返回任何东西。

三、使用Like查询条件

%:0-n个字符

_: 1个字符

[ ]:指定范围中的字符   [abcd] [a-d]

[^ ]:非指定范围中的字符 [^1234] [^1-4]

如果要使查找包含通配符的模式(字符中的通配符不起作用,只是普通字符),可

使用下列方法

1、使用[ ]将通配符括起来

如:Like  ‘%F[-]15%’

2、使用指定的转义符

如:

‘%F&-15%’ Escape ‘&’

指定了&为转义符,凡是跟着&后的字符,都被转义成普通字符。

注:使用Like运算符时,数据库排序规则指定的排序顺序决定了是否区分大小写和字符的

排序顺序。

如果需要,可以使用关键字Collate指定Like运算符使用的排序规则。

虽然Like运算符很有用,但它也会影响性能。索引基于列的开头部分,而不是中间的内容。

如果应用程序需要频繁地使用Like运算符就启用全文索引。

四、多个Where条件

and  or  not  组合

优先级:高------>低

五、Select ...Where语句

Select ‘10’ where 10>9

其效果类似于if 条件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值