sql字符串函数和操作符

发布时间:2016-12-7 22:27:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"sql字符串函数和操作符",主要涉及到sql字符串函数和操作符方面的内容,对于sql字符串函数和操作符感兴趣的同学可以参考一下。

本节描述了用于检查和操作字符串数值的函数和操作符。 在这个环境中的字串包括所有类型 character, character varying,和 text 的值。除非另外说明,所有下面列出的函数都可以处理这些类型,不过要小心的是,在使用 character 类型的时候,它的自动填充的潜在影响。通常这里描述的函数也能用于非字串 类型,我们只要先把那些数据转化为字串表现形式就可以了。有些函数还可以处理位串类型。 SQL 定义了一些字串函数, 它们有指定的语法,它们里面是用某种特定的关键字,而不是逗号来分隔参数。 详情请见Table 9-6, 这些函数也用正常的函数调用说法实现了。 (参阅 Table 9-7。) Table 9-6. SQL 字串函数和操作符 函数 返回类型 描述 例子 结果 string || string text 字串连接 'Post' || 'greSQL' PostgreSQL bit_length(string) integer 字串里二进制位的个数 bit_length('jose') 32 char_length(string) 或 character_length(string) integer 字串中的字符个数 char_length('jose') 4 convert(string using conversion_name) text 使用指定的转换名字改变编码。转换可以通过 CREATE CONVERSION 定义。当然系统里有一些预定义的转换名字。参阅 Table 9-8 获取可用的转换名。 convert('PostgreSQL'  using iso_8859_1_to_utf_8) Unicode (UTF-8) 编码的'PostgreSQL' lower(string) text 把字串转化为小写 lower('TOM') tom octet_length(string) integer 字串中的字节数 octet_length('jose') 4 position(substring in string) integer 声明的子字串的位置 position('om' in 'Thomas') 3 overlay(string placing string from integer [for integer]) text 替换子字串 overlay('Txxxxas' placing 'hom' from 2 for 4) Thomas position(substring in string) integer 指定的子字串的位置 position('om' in 'Thomas') 3 substring(string [from integer] [for integer]) text 抽取子字串 substring('Thomas' from 2 for 3) hom substring(string from pattern) text 抽取匹配 POSIX 正则表达式的子字串 substring('Thomas' from '...$') mas substring(string from pattern for escape) text 抽取匹配SQL正则表达式的子字串 substring('Thomas' from '%#"o_a#"_' for '#') oma trim([leading | trailing | both] [characters] from string) text 从字串 string 的 开头/结尾/两边/ 删除只包含 characters (缺省是一个空白)的最长的字串。 trim(both 'x' from 'xTomxx') Tom upper(string) text 把字串转化为大写。 upper('tom') TOM 还有额外的字串操作函数可以用,它们在Table 9-7列出。 它们有些在内部用于实现Table 9-6 列出的SQL标准字串函数。 Table 9-7. 其他字串函数 函数 返回类型 描述 例子 结果 ascii(text) integer 参数第一 个字符的 ASCII 码 ascii('x') 120 btrim (string text, characters text) text 从 string 开头和结尾删除 只包含在 characters 里的字符的最长字串。 btrim ('xyxtrimyyx','xy') trim chr(integer) text 给出 ASCII 码的字符 chr(65) A convert(string text, [src_encoding name,] dest_encoding name) text 把字串转换为 dest_encoding . 原来的编码是用 src_encoding 声明的. 如果省略了 src_encoding, 则假设为数据库编码. convert( 'text_in_unicode',  'UNICODE', 'LATIN1') 以 ISO 8859-1 编码表示的text_in _unicode decode(string text, type text) bytea 把早先用encode编码的,存放在 string 里面的二进制数据解码。 参数类型和encode一样。 decode('MTIzAAE=',  'base64') 123\000\001 encode(data bytea, type text) text 把二进制数据编码为只包含 ASCII 形式的数据。 支持的类型有base64,hex,escape。 encode('123\\000 \\001', 'base64') MTIzAAE= initcap(text) text 把每个单词(空白分隔)的第一个子母转为大写 initcap('hi thomas') Hi Thomas length(string) integer 字串中字符的数目 length('jose') 4 lpad(string text, length integer [, fill text]) text 通过填充字符 fill (缺省时为空白), 把 string 填充为长度 length。 如果 string 已经比 length 长则将其截断(在右边)。 lpad('hi', 5, 'xy') xyxhi ltrim(string text, characters text) text 从字串 string 的 开头 删除只包含 characters 的最长的字串。 ltrim ('zzzytrim','xyz') trim md5(string text) text 计算给出字串的 MD5 散列,以十六进制返回结果。 md5('abc') 90015098 3cd24 fb0d69 63f7d2 8e17f72 pg_client_encoding() name 当前客户端编码名称。 pg_client_ encoding() SQL_ASCII quote_ident(string text) text 返回给出字串的一个适用于在SQL语句字串里当作标识符引起使用的形式。只有在必要的时候才会添加引号(也就是说,如果字串包含非标识符字符或者会 转换大小写的字符)。 嵌入的引号被恰当地写了双份。 quote_ident('Foo') "Foo" quote_literal(string text) text 返回给出字串的一个适用于在SQL语句字串里当作文本使用的形式。 嵌入的引号和反斜杠被恰当地写了双份。 quote_literal ('O\'Reilly') 'O''Reilly' repeat(text, integer) text 重复 text 一定次数。 repeat('Pg', 4) PgPgPgPg replace(string text, from text, to text) text 把字串string里出现地所有子字串 from 替换成子字串 to。 replace ('abcdefabcdef',  'cd', 'XX') abXXef abXXef rpad(string text, length integer [, fill text]) text 通过填充字符 fill (缺省时为空白), 把 string 填充为长度 length。 如果 string 已经比 length 长则将其截断。 rpad('hi', 5, 'xy') hixyx rtrim(string text, character text) text 从字串 string 的 结尾 删除只包含 character 的最长的字串。 rtrim ('trimxxxx','x') trim split_part (string text, delimiter text, field integer) text 根据 delimiter 分隔 string 返回生成的第 field 个子字串(一为基)。 split_part ('abc~@~def ~@~ghi','~@~',2) def strpos(string, substring) text 声明的子字串的位置。(和 position(substring in string一样),不过要注意参数顺序是相反的) strpos ('high','ig') 2 substr(string, from [, count]) text 抽取子字串。(和 substring(string from from for count)一样) substr('alphabet', 3, 2) ph to_ascii (text [, encoding]) text 把文本从其它编码转换为 ASCII。 [a] to_ascii('Karel') Karel to_hex(number integer 或者 bigint) text 把 number 转换成其对应地十六进制表现形式。 to_hex(922337203 6854775807) 7fffffff ffffffff translate(string text, from text, to text) text 把在 string 中包含的任何匹配 from 中的字符的字符转化为对应的 在 to 中的字符。 translate('12345',  '14', 'ax') a23x5 Notes: a. to_ascii 函数只支持从 LATIN1, LATIN2,和 WIN1250 转换。 来自:http://blog.sina.com.cn/s/blog_59cb8a9301009w0a.html

上一篇:UVA - 111 History Grading
下一篇:const的用法

相关文章

相关评论