border="0" width="330" height="86" src="http://music.163.com/outchain/player?type=2&id=32785760&auto=0&height=66">
Where子句操作符
Warning:不要使用LIKE
Tip:Between采用Between…And…的形式规定查找范围
Tip:如果要查找空值,可使用
TIP:如果不清楚运算顺序,请添加括号,别自作聪明(And运算符优先级大于OR)
Where
where语句的主要功能是过滤掉我们不需要的数据。比如我们想查询1997年以前的订单。
SELECT [OrderID]
,[CustomerID]
,[EmployeeID]
,[OrderDate]
,[RequiredDate]
,[ShippedDate]
,[ShipVia]
,[Freight]
,[ShipName]
,[ShipAddress]
,[ShipCity]
,[ShipRegion]
,[ShipPostalCode]
,[ShipCountry]
FROM [dbo].[Orders]
WHERE Year([OrderDate])<1997
查询结果过多,在此不显示
Where子句操作符
Tip:Between采用Between…And…的形式规定查找范围
Tip:如果要查找空值,可使用
WHERE XX(属性名称)IS NULL
的形式
高级过滤
操作符
有关更多运算符,请移步MSDN
TIP:如果不清楚运算顺序,请添加括号,别自作聪明(And运算符优先级大于OR)
我们可以使用多个条件来进行复杂查询,有时候操作符也可以相互替代,比如OR运算符和IN运算符:
SELECT [ShipName]
,[ShipAddress]
,[ShipCity]
,[ShipRegion]
,[ShipPostalCode]
,[ShipCountry]
,[ShipVia]
FROM [dbo].[Orders]
WHERE [ShipVia] IN(3,2)
也可转换成:
SELECT [ShipName]
,[ShipAddress]
,[ShipCity]
,[ShipRegion]
,[ShipPostalCode]
,[ShipCountry]
,[ShipVia]
FROM [dbo].[Orders]
WHERE [ShipVia] = 3 OR [ShipVia] = 2
还有NOT操作符和<>操作符
SELECT [ShipName]
,[ShipAddress]
,[ShipCity]
,[ShipRegion]
,[ShipPostalCode]
,[ShipCountry]
,[ShipVia]
FROM [dbo].[Orders]
WHERE [ShipVia] <> 3
可以转换为
SELECT [ShipName]
,[ShipAddress]
,[ShipCity]
,[ShipRegion]
,[ShipPostalCode]
,[ShipCountry]
,[ShipVia]
FROM [dbo].[Orders]
WHERE NOT [ShipVia] = 3
原则是哪个简单,易懂就用哪个。