字符串函数对二进制数据、字符串和表达式执行不同的操作。 这些函数对 CHAR、、、、 和数据类型以及可隐式转换为 CHAR 或 的数据类型进行操作。 您可以在语句的 WHERE 子句和表达式中使用字符串函数。 常用的字符串函数有:
1.字符转换功能
字符转换函数有以下几种:
·ASCII()
ASCII() 函数返回字符表达式最左边字符的 ASCII 代码值。 ASCII()函数语法如下:
示例 4-40:
提醒:在ASCII()函数中,纯数字的字符串不需要用''括起来,但是包含其他字符的字符串必须用''括起来,否则会出错。
· 字符()
CHAR() 函数用于将 ASCII 代码转换为字符。 其语法如下:
如果未输入 0 到 255 之间的 ASCII 代码值,CHAR() 函数将返回 NULL 值。
示例 4-41:
· 降低()
LOWER()函数将所有字符串转换为小写,其语法如下:
示例 4-42:
上()
UPPER()函数将所有字符串转换为大写,其语法如下:
示例 4-43:
STR()
STR()函数将数值数据转换为字符数据,其语法如下:
str([,[,]])
参数 sum 必须为非负数,指定返回字符串的长度,并指定要返回的小数位数。 如果不指定长度,则默认值为10,默认值为0。当小数位数大于该值时,STR()函数将其四舍五入到下一位。 指定长度应大于或等于符号位数+小数点前位数+小数点后位数+小数点后位数。 如果小数点前的位数超过指定长度,则返回指定长度的“*”。
示例 4-44:
2.去除空格功能
有两种类型的空白删除函数:
· LTRIM()
LTRIM()函数去除字符串头部的空格,其语法如下:
LTRIM()
示例 4-45:
RTRIM()
RTRIM()函数去除字符串末尾的空格,其语法如下:
RTRIM()
例4-46:
提示:很多情况下,往往需要获取头尾没有空格的字符串。 这时候上面两个函数就可以嵌套使用了。
示例 4-47:
3.获取子串函数
子串函数如下:
·左边()
LEFT()函数返回部分字符串,其语法如下:
左边 (, )
LEFT()函数返回的子字符串是从字符串最左边的字符到第一个字符的部分。 如果为负数,则返回 NULL 值。
示例 4-48:
·正确的()
RIGHT()函数返回部分字符串,其语法如下:
正确的 (, )
RIGHT() 函数返回的子字符串是从字符串的右侧字符到最后一个字符的部分。 如果为负数,则返回 NULL 值。
例4-49:
·()
() 函数返回部分字符串,其语法如下:
(, , )
() 函数返回的子字符串是从字符串左边开始的字符部分。 其中表达式可以是字符串或二进制字符串或包含字段名的表达式。 () 函数不能用于 TEXT 和 IMAGE 数据类型。
示例4-50:
4.字符串比较函数
字符串比较函数如下所示:
·()
() 函数返回字符串中指定子串的起始位置,其语法如下:
(,)
其中是要搜索的字符表达式,可以是字符串,也可以是列名表达式。 如果未找到子字符串,则返回值 0。 此函数不能与 TEXT 和 IMAGE 数据类型一起使用。
例4-51:
示例 4-52:
·()
() 函数返回字符串中指定子串的起始位置,其语法如下:
(,)
子字符串表达式前后必须有百分号“%”,否则返回值为0。
示例 4-53:
与()函数不同的是,()函数的子字符串中可以使用通配符,该函数可用于CHAR、TEXT数据类型。
例4-54:
·()
()函数返回一个四位字符代码,其语法如下:
()
() 函数将转换为 4 个字符的声音代码。 第一个代码是原始字符串的第一个字符,第二到第四个字符是数字,它们是字符串的发音字母对应的数字,但字符串中除第一个字母之外的所有字符都被忽略。 元音。 () 函数可用于查找听起来相似的字符串。 但该函数对于数字和汉字仅返回0值。
示例 4-55:
·()
() 函数返回 () 函数返回的两个字符表达式的值之差。 其语法如下:
(,)
值差用0、1、2、3、4表示,含义如下:
0--两个()函数的返回值的第一个字符不同
1--两个()函数的返回值第一个字符相同
2--两个()函数的返回值的第一个和第二个字符相同
3--两个()函数的返回值的第一个、第二个、第三个字符相同
4--两个()函数返回值完全一样
例4-56:
5. 字符串操作函数
字符串操作函数如下:
·()
()函数返回一个由特定字符包围的字符串,其语法如下:
([,])
表示用来包围字符串的字符,如“'”、“(”、“[”等,默认值为“[]”
例4-57:
·()
()函数返回一个重复指定次数的字符串,其语法如下:
( )
如果值为负数,则 () 函数返回 NULL 字符串。
例4-58:
·()
()函数反转指定字符串中的字符顺序,其语法如下:
()
其中可以是字符串、常量或列的值。
示例 4-59:
·()
()函数返回指定子字符串替换后的字符串,其语法如下:
(, , )
() 函数替换中的子字符串。
例4-60:
· 空间()
SPACE()函数返回指定长度的空字符串,其语法如下:
空间()
如果该值为负数,则 SPACE() 函数返回 NULL 字符串。
例4-61:
· 东西()
STUF()函数将字符串中指定位置和长度的子串替换为另一个子串,其语法如下:
东西 (, , ,)
如果起始位置为负数或长度值为负数,或者起始位置的长度大于 1,则 STUFF() 函数返回 NULL 值。 如果长度大于1的长度,则1只保留第一个字符。
示例 4-62:
6.数据类型转换函数
一般情况下,SQL会自动完成数据类型转换。 例如,您可以直接将字符数据类型或表达式与数据类型或表达式进行比较。 当表达式中使用or时,SQL还可以将数据类型或表达式表达式转换为数据类型或表达式,这称为隐式转换。 如果不确定SQL是否可以完成隐式转换或者使用其他不能隐式转换的数据类型,则需要使用数据类型转换函数进行显式转换。 有两个这样的函数:
·投掷()
CAST()函数语法如下:
演员表(AS[])
·()
()函数语法如下:
([ ], [, 风格])
提醒:1、是SQL系统定义的数据类型,这里不能使用用户自定义的数据类型。
2、用于指定数据的长度,默认值为30。
3. 要将 CHAR 或类型转换为 INT 等类型,结果必须是带正号 (+) 或负号 (-) 的值。
4. TEXT类型到CHAR或类型转换最多为8000个字符,即CHAR或数据类型为最大长度。
5、IMAGE类型存储的数据转换为or类型,最大长度为8000个字符。
6、将整数值转换为MONEY或类型,并按照定义国家的货币单位进行处理,如人民币、美元、英镑等。
7. BIT类型转换将非零值转换为1,仍然存储在BIT类型中。
8. 如果尝试转换为不同长度的数据类型,则转换后的值将被截断,并且转换后的值后将显示“+”以指示发生了此截断。
例4-63:
例4-64:
示例 4-65:
使用 () 函数的样式选项可以以不同的格式显示日期和时间。 style是将求和数据转换为字符串时使用的SQL系统提供的转换样式号。 不同的样式编号有不同的输出格式。 如表4-8所示。
例4-66:
7. 日期功能
日期函数用于操作和输入数据、执行算术运算。 与其他函数一样,日期函数可以在语句的 WHERE 子句和表达式中使用。 其用法如下:
日期函数参数,其中不同函数的参数个数应该不同。
天()
DAY()函数语法如下:
天()
DAY() 函数返回日期值。
例4-67:
在上面的例子中,DAY()函数使用一个整数值作为参数,系统指定从1900年1月1日开始的整数值+1,然后返回日期。
·月()
MonTH() 函数语法如下:
月 ()
MonTH() 函数返回 中的月份值。
例4-68:
与DAY()函数不同的是,当MonTH()函数的参数为整数时,它总是返回整数值1,即SQL认为是1900年1月。
例4-69:
·年()
YEAR() 函数语法如下:
年()
YEAR() 函数返回年份值。
例4-70:
提醒:使用日期函数时,日期值应在1753到9999之间,这是SQL系统识别的日期范围,否则会出现错误。
例4-71:
·()
()函数语法如下:
(, , )
() 函数返回由指定日期加上指定的额外日期间隔得出的新日期。 参数“”常用于日期函数中,用于指定构成日期类型数据的组成部分,如年、季、月、日、周等,其取值如表4- 9:
例4-72:
·()
()函数语法如下:
( ) (, , )
() 函数返回两个指定日期之间的差值,即date2和date1之间的差值,结果值为带符号的整数值。 对于不同的人来说,()函数允许的最大间隙值是不同的,比如:当是时,函数()允许的最大间隙值是68:当年份是时,函数允许的最大间隙值是函数()是24天20小时30分23秒647毫秒。
例4-73:查询在本单位工作8年以上的员工姓名和部门,结果按照在本单位工作时间长短排序。
·()
()函数语法如下:
(,
() 函数以字符串形式返回日期的指定部分。 指定原产地。
例4-74:查询工资大于等于7000的员工姓名、部门号、工资、入职年份,结果按照工资降序排列。
·()
()函数语法如下:
(,)
() 函数以整数值形式返回日期的指定部分。 这部分是按原因指定的。
(dd, date) 相当于 DAY (日期)
(毫米,日期)相当于月份(日期)
(yy, date) 相当于 YEAR (date)
例4-75:
·()
()函数语法如下:
()
() 函数以默认格式返回系统当前的日期和时间,常作为其他函数或命令的参数。
例4-71: