博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WHERE 子句中有用的函数
阅读量:6682 次
发布时间:2019-06-25

本文共 2164 字,大约阅读时间需要 7 分钟。

hot3.png

 有很多时候,可能需要对条件进行一些特殊的处理。例如,存储的字符串可能在串前或串后包含空格,这样进行
时,多余的空格可能导致比较的错误,如果能去掉这些空格就不会产生多余的错误。也可能系统规定,存储时对字符串都以大写形式进行存储,这样也为比较带来了麻烦,因为大小写字符不一定相同,如果能统一的进行大写或小写比较也可以避免这样的错误。 
为了方便用户的使用,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

你可能感兴趣的文章
SQLite移植手记
查看>>
volcanol_Linux_问题汇总系列
查看>>
Bing Maps开发扩展一:Oracle Spatial的空间数据渲染
查看>>
HTTP中Keep-Alive(长连接)的一些说明
查看>>
apache2.4.1+mysql5.5.21+php5.4.0安装实践(二)
查看>>
免费的天气预报API--谷歌,雅虎,中央气象台
查看>>
[寻路][导航][算法][地图开发]寻路算法的对比优势1
查看>>
CMMI 3级精简并行过程综述
查看>>
关于new/delete、malloc/free的内存泄漏检测
查看>>
上传文件时的后台处理
查看>>
详解动态规划01背包问题--JavaScript实现
查看>>
objc-msgSend的作用
查看>>
LintCode 最大正方形
查看>>
python三方库之requests-快速上手
查看>>
如何使用函数来优化性能?
查看>>
ClassLoader(二)- 加载过程
查看>>
ThinkGo:一个轻量级的 Go 语言 MVC 框架
查看>>
用Backtracking思想解决subset/permutation/combination/partition问题
查看>>
脑洞大开的翻转代码
查看>>
简化 MongoDB 关联运算
查看>>