javawhere函数_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, salarytrim函数用于删除空格
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( )函数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论