1、 ASCII

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。

1) 返回与指定字符对应的ASCII码

SQL> select ascii('A') A,ascii('a') "a",ascii('0') zero,ascii(' ') space from dual;

A          a       ZERO      SPACE
---------- ---------- ---------- ----------
        65         97         48         32

2) 返回单引号的ASCII码

SQL> select ascii('''') from dual;

ASCII('''')
-----------
         39

3) ASCII只针对第一个字母进行转换

SQL> select ascii('A'),ascii('AB'),ascii('ABC') from dual;

ASCII('A') ASCII('AB') ASCII('ABC')
---------- ----------- ------------
        65          65           65

2、 CHR

语法:CHR(n [USING NCHAR_CS])

其中 “n” 为ASCII码数

SQL> select chr(39) from dual;

C
-
'

注:CHR(13) 为回车; CHR(10) 为换行。

3、 CONCAT

语法:CONCAT(char,dest_char_set[, source_char_set ])

作用:连接字符串,只能连接两个字符串

SQL> select concat('HELLO'||chr(32),'WORLD')||'!' as "HELLO WORLD" from dual;

HELLO WORLD
------------
HELLO WORLD!

4、 INITCAP

语法:INITCAP(char)

作用:返回字符串并将首字母大写

SQL> select initcap('hello') "Hello" from dual;

Hello
-----
Hello

5、 INSTR

语法:INSTR(string1,string2,start_position,nth_appearance)

string1:被检索的字符串

string2:希望搜索的字符串

start_position:搜索开始的位置,默认为1。如果为正,则为从左到右检索;如果为负,则为从右到左检索。

nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1,如果为负数系统会报错。

作用:在一个字符串中搜索指定的字符,返回发现指定的字符位置

SQL> select instr('a2a4a6a8','a') "instr" from dual;

instr
----------
         1

SQL> select instr('a2a4a6a8','a',-1,1) "instr" from dual;

instr
----------
         7

SQL> select instr('a2a4a6a8','a',2,2) "instr" from dual;

instr
----------
         5

6、 SUBSTR

语法:substr(string,start_position,[length])

作用:取子字符串,从start_position开始,取length长度个字符,如果length缺省,表示截取到字符串末尾。

1) 字符串‘a2a4a6a8’,从后面数第一个‘a’开始,截取之后的所有字符串

SQL> select substr('a2a4a6a8',7) from dual;

SU
--
a8

2) 字符串‘a2a4a6a8’,从第2个字符开始,截取3个字符

SQL> select substr('a2a4a6a8',2,3) from dual;

SUB
---
2a4

7、 VSIZE

语法:VSIZE(expr)

作用:返回expr的内部字节数,如果expr为空,返回null值

SQL> select vsize('hello') from dual;

VSIZE('HELLO')
--------------
             5

8、 LENGTH

语法:LENGTH(expr)

作用:返回expr的字符长度

SQL> select length('hello') from dual;

LENGTH('HELLO')
---------------
          5

9、 LOWER

语法:LOWER(char)

作用:返回字符串,并将所有的字母小写

SQL> select lower('HELLO') from dual;

LOWER
-----
hello

10、 UPPER

语法:UPPER(char)

作用:返回字符串,并将所有字母大写

SQL> select upper('hello') from dual;

UPPER
-----
HELLO

11、 LPAD&RPAD

语法:

LPAD(string,padded_length,[pad_string])

RPAD(string,padded_length,[pad_string])

string
表示:被填充的字符串
padded_length
表示:字节的长度,是返回的字节长度的字符串,如果这个数量比原字符串的字节长度要短,rpad/lpad函数将会把字符串截取成从左到右的n个字符;如果正好是中文要被截断,那么这个中文返回的是空格。如:rpad('函数',3) ----返回的是'函 '。
pad_string
是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,rpad函数将会在string的右边粘贴空格,lpad函数将会在string的左边粘贴空格。
1)用字符“0”使字符串在列的左侧补足5位
SQL> select lpad(rownum,5,'0') as left from dual connect by rownum<=5;

LEFT
--------------------
00001
00002
00003
00004
00005
2)用字符“0”使字符串在列的左侧补足6位,然后再在右侧用“0”补足到9位

SQL> select rpad(lpad(rownum,6,'0'),9,'0') as lr from dual connect by rownum <=5;

LR
------------------------------------
000001000
000002000
000003000
000004000
000005000

12、 LTRIM & RTRIM

语法:
LTRIM (string [, string_appearance])RTRIM (string [, string_appearance])
作用:删除string 左/右边出现的字符(string_appearence),当string_appearence缺省时删除左/右边出现的空格。

1) 删除字符串‘000100’左边的‘0’
SQL> select ltrim('000100','0') from dual;

LTR
---
100
2) 删除字符串‘000100’右边的‘0’
SQL> select rtrim('000100','0') from dual;

RTRI
----
0001
3) 删除字符串‘   10’左边的空格
SQL> select ltrim('  10') from dual;

LT
--
10

13、 REPLACE

语法:REPLACE(string,string1,string2)
string:希望被替换的字符或变量
string1:被替换的字符串
string2:要替换的字符串,缺省值为null
作用:用string2替换string中出现的string1
1)将字符串的‘0’替换为null
SQL> select replace('000100','0') from dual;

R
-
1

2)将字符串的‘0’替换为‘1’
SQL> select replace('000100','0','1') from dual;

REPLAC
------
111111

14、 TRANSLATE

语法:TRANSLATE(string,from_string,to_string)
作用:返回将出现在from_string中的每个字符替换为to_string中的相应字符以后的字符串。若from_string比to_string字符串长,那么在from_string中比to_string中多出来的字符将会被删除,三个参数中有一个是空,返回值也将是空值。
1)
SQL> select translate('abclloc','abc','he') from dual;

TRANS
-----
hello

2)返回‘,’的个数
SQL> select length(translate('a,b,c,d',',abcd',',')) from dual;

LENGTH(TRANSLATE('A,B,C,D',',ABCD',','))
----------------------------------------
                                       3

3)将数字保留,将其他的大写字母移除
SQL>
SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789') "Translate example" FROM DUAL;

Tran
----
2229

15、
TRIM

语法:TRIM([{{LEADING
| TRAILNG | BOTH}
           [trim_character]
          | trim_character} FROM ] trim_source)
LEADING:剪掉前面的字符
TRAILING:剪掉后面的字符
BOTH:前后都减

1) 默认 (等同于BOTH)
SQL> with t as (select chr(32)||'OCP'||chr(32) as name from dual)
  2  select '|'||name||'|','|'||trim(name)||'|' from t;

'|'||NA '|'||
------- -----
| OCP | |OCP|

2) 剪掉前面的空格
SQL> with t as (select chr(32)||'OCP'||chr(32) as name from dual)
  2  select '|'||name||'|','|'||trim(leading from name)||'|' from t;

'|'||NA '|'||T
------- ------
| OCP | |OCP |

3) 剪掉后面的空格
SQL> with t as (select chr(32)||'OCP'||chr(32) as name from dual)
  2  select '|'||name||'|','|'||trim(trailing from name)||'|' from t;

'|'||NA '|'||T
------- ------
| OCP | | OCP|

4) 剪掉指定字符“P”
SQL> with t as (select chr(32)||'OCP'||chr(32) as name from dual)
  2  select trim(upper('p') from trim(name))||'M' from t;

TRI
---
OCM

5) 剪掉后面的字符“P”
SQL> with t as (select chr(32)||'OCP'||chr(32) as name from dual)
  2  select trim(trailing upper('p') from trim(name))||'M' from t;

TRI
---
OCM

【SQL】字符型函数的更多相关文章

  1. SQL 练习一 字符型函数

    处理字符串时,利用字符型函数的嵌套组合是非常有效的,试分析一道考题: create table customers(cust_name varchar2(20)); insert into custo ...

  2. 【PostgreSQL-9.6.3】函数(2)--字符型函数

    在上一篇博文中我们交流了数值型函数,这篇我们将讨论PostgreSQL中的字符型函数. 1. reverse(string) reverse函数可以将string字符串的字母显示顺序颠倒. test= ...

  3. 动态SQL字符长度超过8000

    动态SQL字符长度超过8000,我记得SQL SERVER 2008中用SP_EXECUTESQL打破了这个限制. 平常用动态SQL,可能都会用EXEC(),但是有限制,就是8000字符串长度.自从S ...

  4. Oracle 函数-字符型函数

    1.字符型函数 函数 说明 案例 结果 ASCII(X) 求字符X的ASCII码 select ASCII('A') FROM DUAL; 65 CHR(X) 求ASCII码对应的字符 select ...

  5. sql字符转换函数大全

    删除空格 有两个函数,TTRIM()和LTRIM(),可以用来从字符串中剪掉空格.函数LTRIM()去除应该字符串前面的所有空格:函数RTRIM()去除一个字符串尾部的所有空格.这些和vbscript ...

  6. oracle 常用sql字符函数介绍

    常用字符函数介绍 1.ascii 返回与指定的字符对应的十进制数: SQL>select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') ...

  7. sql 字符带下划线匹配问题

    SQL 中 _下划线 作用是 匹配一个任意字符. 如果我们要去掉下划线的作用 单纯只用作一个字符则需要转义成    like '%\_%' escape '\' 字段 1.order_qrsc 2.o ...

  8. oracle 10g函数大全--字符型函数

    ASCII(x1) [功能]:返回字符表达式最左端字符的ASCII 码值. [参数]:x1,字符表达式 [返回]:数值型 [示例] SQL> select ascii('A') A,ascii( ...

  9. sql字符转义

    /** * sql 内的like % 代表一个或多个字符, _代表一个字符,这都是需要转义的 * @param s * @return */ public static String escapeSp ...

随机推荐

  1. 内存管理(malloc和free的用法)

    内存管理 1.堆和栈的区别: 1>栈的特征 1).执行的速度相对较快: 2).空间较小: 3).生存期由系统决定: 4).作用域较小: 5).有名空间,可以通过变量名或者数据名访问: 2> ...

  2. jdk8--collect总结

    https://blog.csdn.net/u014351782/article/details/53818430 一,collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式 ...

  3. BUAA_OO_博客作业三

    1 JML语言总结 1.1 JML语言的理论基础 ​ JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言.JML是一种行为接口规格语言(Behavi ...

  4. 初识Scrapy——1—scrapy简单学习,伯乐在线实战、json数据保存

    Scrapy——1 目录 什么是Scrapy框架? Scrapy的安装 Scrapy的运行流程 Scrapy的使用 实战:伯乐在线案例(json文件保存) 什么是Scrapy框架? Scrapy是用纯 ...

  5. mysql中的sql查询优化

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进 ...

  6. hdu 4786 最小生成树与最大生成树

    /* 题意 :有一些边权值为1和0,判断是否存在一个生成树使得他的总权值为一个斐波那契数. 解法:建立一个最小生成树向里面加权值为1的边替换为0的边,保证原来的联通.因为权值为1,可直接求出最大生成树 ...

  7. K - 贪心 基础

    FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containi ...

  8. Workflow:实现一个简单的审批流程

    1. 创建一个空白的项目,在其中创建Host – Windows Console Application,Client – Windows forms Application和DataExchange ...

  9. Ural 1353 Milliard Vasya&#39;s Function(DP)

    题目地址:Ural 1353 定义dp[i][j].表示当前位数为i位时,各位数和为j的个数. 对于第i位数来说.总能够看成在前i-1位后面加上一个0~9.所以状态转移方程就非常easy出来了: dp ...

  10. JSP 获取Request 经常使用參数

    <input type="hidden" id="a" value="<%=request.getScheme()%>" ...