SqlServer之基本增删改查(2)

本文深入探讨SQL中WHERE子句的功能与应用,包括过滤指定年份的数据、使用多种操作符进行复杂查询、理解运算符优先级及如何利用 BETWEEN、IS NULL、NOT 等关键字。同时提供实例演示如何灵活转换查询条件,确保查询结果简洁明了。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

border="0" width="330" height="86" src="http://music.163.com/outchain/player?type=2&id=32785760&auto=0&height=66">

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子句操作符
操作符

Warning:不要使用LIKE
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 

原则是哪个简单,易懂就用哪个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值