SQL字符函数练习

SQL字符函数练习

--截取字符函数:substr(字符串,起始位置【,截取个数】)
SELECT substr('abcdefg',3,2) FROM dual;   --结果为cd
SELECT substr('abcdefg',-3,2) FROM dual;  --结果为df。起始位置可以是负数(右数第N位)

--长度字符函数:length(字符串)
SELECT length('abcdefg') FROM dual;   --结果为7

--索引字符函数:instr(字符串,查找子串【,起始位置【,第几次出现】】)
SELECT instr('abcdefgcdefgcde','cd',1,2) FROM dual; --结果为8
SELECT instr('abcdefgcdefgcde','dd',1,2) FROM dual; --结果为0。没有则返回0

--填充字符函数:lpad/rpad(字符串,固定长度【,填充字符】)
SELECT ename,lpad(ename,100) FROM emp; -- 默认填充空格
SELECT lpad('abcd',3,'#') FROM dual;   -- 结果为abc。超过固定长度的部分,删除之
SELECT rpad('',3,'%') FROM dual;       --结果为null。任何含null的表达式均为null

--修剪字符函数:trim(关键字 FROM  字符串)
SELECT trim('a' FROM 'aabbddaaccaa') AS "Trim" FROM dual;   -- 结果为:bbddaacc。修剪字符串两端的关键字
                --ltrim/rtrim(字符串【,字符】)
SELECT ltrim('   adlksaadsdadaaa  ') AS "Ltrim1" FROM dual; --结果为:'adlksaadsdadaaa  '。默认修剪空格
SELECT ltrim('   adlksaadsdadaaa      ',' ') AS "Ltrim2" FROM dual; -- Ltrim1等效于Ltrim2

--替换字符函数:replace(字符串,查找字符串【,替换字符串】)
SELECT replace('abcdefg','bcd') AS "Replace" FROM dual;  --结果为:aefg。默认替换为null(相当于删除)
SELECT replace('abcdefg','bcd','%') AS "Replace" FROM dual;   --结果为:a%efg。

--字符和编码的转换chr/ascii
SELECT chr(65) AS "Char" FROM dual;
SELECT ASCII('A') AS "ASCII" FROM dual;

--练习1:用户输入一个任意编号,查询此编号的员工
SELECT * FROM emp 
WHERE empno = &input;--'&'表示替代变量,等待用户输入后,替换'input'

--练习2:用户输入一个关键字,查询ename包含此关键字的员工(不用LIKE)
SELECT * FROM emp 
WHERE instr(ename,'&input')<>0;

 

posted on 2017-10-25 23:23  李洋1991  阅读(364)  评论(0编辑  收藏  举报