WHERE 子句中有用的函数

 有很多时候,可能需要对条件进行一些特殊的处理。例如,存储的字符串可能在串前或串后包含空格,这样进行 字符串比较 时,多余的空格可能导致比较的错误,如果能去掉这些空格就不会产生多余的错误。也可能系统规定,存储时对字符串都以大写形式进行存储,这样也为比较带来了麻烦,因为大小写字符不一定相同,如果能统一的进行大写或小写比较也可以避免这样的错误。 
为了方便用户的使用,SQL 定义了很多函数,可以在 WHERE 子句中使用。当然这些函数在 SQL 语句的其他地方也可以使用,不过这些函数在 WHERE 子句中更加有用。  

(1)  删除多余空格 
      SQL 中提供了 TRIM( )函数来方便的删除字符串的串前串后可能存在的空格。例如,在输入工作人员记录时,录入人员不小心在一些工作人员名字之后输入了空格,为了消除这些空格的可能影响,在查找时就可以使用 TRIM( )函数,如查找名为“王静”的工作人员记录,可以这样进行查询: 

SELECT name, sex, id, salary 
FROM Employee 
WHERE TRIM(name) = ’王静’ 
TRIM( )函数也经常与别的函数特别是字符串函数一起使用,以使其它函数的返回结果不会有多余的空格。 

(2)  字符串函数 
      SQL 中为字符串提供了很多有用的函数,如 LOWER(str)函数用于将字符串 str中所有字符都转化为小写字符。这样就可以解决比较时的大小写问题。如增加了一个名为“Mike”的外籍工作人员之后,查找名为“Mike”的工作人员记录,而不清楚系统中将如何存储,可以这样进行查询: 


SELECT name 
FROM Employee 
WHERE LOWER(name) = ’mike’ 

Results 
name  
————— 
Mike     
[1row] 

从显示结果可以知道,WHERE 子句中的 LOWER(name)函数的使用并不会改变name 列的值,因此显示结果中工作人员的名字仍为“Mike”。 又如,前面介绍了知道工作人员的名字是 2 个字长,但不知道其中任何一个字,可以这样使用通配符“_”进行匹配: 

SELECT name, sex, id, salary 
FROM Employee 
WHERE name LIKE ’__’ 
SQL 中提供了计算字符串长度的函数——LENGTH(str)。就可以使用该函数查询名字长度为 2 个字长的工作人员的记录: 
SELECT name, sex, id, salary 
FROM Employee 
WHERE LENGTH(name) = 2 

Results 
name         sex       id     salary 
—————    ———    ——   ———— 
李明         男     1002    5000.00 
刘燕         女     2002    3000.00 
张宇         男     3001    5000.00 
魏箐         女     3003    4000.00 
王静         女     3004    3000.00 
张峰         男     4001    7000.00 
魏成         男     6001    5000.00 
[7rows] 

有关 SQL 中提供的字符串函数及其用途,将在第 10 章进行详细介绍。 

(3) 类型转换函数 
     SQL 中提供了三个转换函数:CONVERT( )、TO_CHAR( )和 TO_NUMBER( )函数。 
CONVERT( )函数是通用的转换函数,可以进行多种数据类型间的转换。
CONVERT( )使用三个参数:目标数据类型、被转换的表达式和数据的输出类型(该数据要转换成字符串类型的时候使用): 

CONVERT(data_type , expression [,style]) 

TO_CHAR( )函数可以将其它类型的数据转换成字符串。如,将时间类型转换为字符串类型数据。TO_NUMBER( )函数则用于将其它类型的数据转换为数字类型。如,创建表时将 Paccepter 表中的 pnumber 列定义为字符串类型,使用中需要将其作为数字时,就可以使用 TO_NUMBER( )函数很好的将存储为字符串的数字方便的转换成数字类型数据。有关这三个函数的使用,将在第 10 章进行详细介绍。 
      在不同的数据库系统中可能提供了其它的转换函数, 如Oracle中提供了TO_DATE( )函数以将字符串转换成日期。 这样,在需要时您就可以使用转换函数,使得进行比较或使用表达式时不会产生类型不匹配的问题。 

(4) 聚集函数 
      SQL 中提供了很多聚集函数可以方便的进行最大值、最小值、平均值等的计算。在WHERE 子句中也可以使用这些函数,如查找所有大于平均值的记录。有关聚集函数的使用,将在下一章进行详细的介绍。

(5) 函数的嵌套 
      SQL 支持函数的嵌套使用。例如,使用先使用 SUBSTR( )函数从一个字符串中取出一个字串,再使用 TRIM( )函数去除可能的前后空格。可以这样使用: 

TRIM(SUBSTR(’NO.9 Shengli Road        ’,21)) 

函数的执行结果为: 

NO.9 Shengli Road 

函数嵌套时,按照从里到外的顺序执行。上例中先执行 SUBSTR( )函数,随后才执行 TRIM( )函数。 

转载于:https://my.oschina.net/javaEasy/blog/70773

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值