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;