日期:2014-05-16  浏览次数:20425 次

oracle9i 常用问题五:内部函数204~280

204. 如何得到字符串的第一个字符的ASCII值??

? ? ? ?ASCII(CHAR)?

? ? ? ?SELECT ASCII('ABCDE') FROM DUAL;?

? ? ? ?结果: 65?

205. 如何得到数值N指定的字符??

? ? ? ?CHR(N)?

? ? ? ?SELECT CHR(68) FROM DUAL;?

? ? ? ?结果: D?

206. 如何连接两个字符串??

? ? ? ?CONCAT(CHAR1,CHAR2)?

? ? ? ?SELECT CONCAT('ABC','DEFGH') FROM DUAL;?

? ? ? ?结果: 'ABCDEFGH'?

207. 如何将列中的数值代替为字符串??

? ? ? ?DECODE(CHAR,N1,CHAR1,N2,CHAR2...)?

? ? ? ?SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;?

208. INITCAP(CHAR)?

? ? ? ?将字符串CHAR的第一个字符为大写,其余为小写。?

? ? ? ?SELECT INITCAP('ABCDE') FROM DUAL;?

209. LENGTH(CHAR)?

? ? ? ?取一字符串CHAR的长度。?

? ? ? ?SELECT LENGTH('ABCDE') FROM DUAL;?

210. LOWER(CHAR)?

? ? ? ?将字符串CHAR全部变为小写。?

? ? ? ?SELECT LOWER('ABCDE') FROM DUAL;?

211. LPAD(CHAR1,N,CHAR2)?

? ? ? ?用字符串CHAR2包括的字符左填CHAR1,使其长度为N。?

? ? ? ?SELECT LPAD('ABCDEFG',10'123') FROM DUAL;?

? ? ? ?结果: '123ABCDEFG'?

212. LTRIM(CHAR,SET)?

? ? ? ?从字符串CHAR的左边移去字符串SET中的字符,直到第一个不是SET中的字符为止。?

? ? ? ?SELECT ('CDEFG','CD') FROM DUAL;?

? ? ? ?结果: 'EFG'?

213. NLS_INITCAP(CHAR)?

? ? ? ?取字符CHAR的第一个字符大写,其余字符为小写。?

? ? ? ?SELECT NLS_INITCAP('ABCDE') FROM DUAL;?

214. NLS_LOWER(CHAR)?

? ? ? ?将字符串CHAR包括的字符全部小写。?

? ? ? ?SELECT NLS_LOWER('AAAA') FROM DUAL;?

215. NLS_UPPER(CHAR)?

? ? ? ?将字符串CHAR包括的字符全部大写。?

? ? ? ?SELECT NLS_UPPER('AAAA') FROM DUAL;?

216. REPLACE(CHAR1,CHAR2,CHAR3)?

? ? ? ?用字符串CHAR3代替每一个列值为CHAR2的列,其结果放在CHAR1中。?

? ? ? ?SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;?

217. RPAD(CHAR1,N,CHAR2)?

? ? ? ?用字符串CHAR2右填字符串CHAR1,使其长度为N。?

? ? ? ?SELECT RPAD('234',8,'0') FROM DUAL;?

218. RTRIM(CHAR,SET)?

? ? ? ?移去字符串CHAR右边的字符串SET中的字符,直到最后一个不是SET中的字符为止。?

? ? ? ?SELECT RTRIM('ABCDE','DE') FROM DUAL;?

219. SUBSTR(CHAR,M,N)?

? ? ? ?得到字符串CHAR从M处开始的N个字符. 双字节字符,一个汉字为一个字符的。?

? ? ? ?SELECT SUBSTR('ABCDE',2,3) FROM DUAL;?

220. SUBSTRB(CHAR,M,N)?

? ? ? ?得到字符串CHAR从M处开始的N个字符. 双字节字符,一个汉字为二个字符的。?

? ? ? ?SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;?

221. TRANSLATE(CHAR1,CHAR2,CHAR3)?

? ? ? ?将CHAR1中的CHAR2的部分用CHAR3代替。?

? ? ? ?SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM ?DUAL;?

222. UPPER(CHAR)?

? ? ? ?将字符串CHAR全部为大写。?

223. ADD_MONTHS(D,N)?

? ? ? ?将N个月增加到D日期。?

? ? ? ?SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;?

224. LAST_DAY(D)?

? ? ? ?得到包含D日期的月份的最后的一天的日期。?

? ? ? ?SELECT LAST_DAY(SYSDATE) FROM DUAL;?

225. MONTH_BETWEEN(D1,D2)?

? ? ? ?得到两个日期之间的月数。?

? ? ? ?SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;?

226. NEXT_DAY(D,CHAR)?

? ? ? ?得到比日期D晚的由CHAR命名的第一个周日的日期。?

? ? ? ?SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL;?

227. ROUNT(D,FMT)?

? ? ? ?得到按指定的模式FMT舍入到的最进的日期。?

? ? ? ?SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;?

228. SYSDATE?

? ? ? ?得到当前系统的日期和时间。?

? ? ? ?SELECT SYSDATE FROM DUAL;?

229. TO_CHAR(D,FMT)?

? ? ? ?将日期D转换为FMT的字符串。?

? ? ? ?SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL;?

230. TO_DATE(CHAR,FMT)?

? ? ? ?将字符串CHAR按FMT的格式转换为日期。?

? ? ? ?SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;?

231. ABS(N)?

? ? ? ?得到N的绝对值。?

? ? ? ?SELECT ABS(-6) FROM DUAL;?

232. CEIL(N)?

? ? ? ?得到大于或等于N的最大整数。?

? ? ? ?SELECT CEIL(5.6) FROM DUAL;?

233. COS(N)?

? ? ? ?得到N的余弦值。?

? ? ? ?SELECT COS(1) FROM DUAL;?

234. SIN(N)?

? ? ? ?得到N的正弦值。?

? ? ? ?SELECT SIN(1) FROM DUAL;?

235. COSH(N)?

? ? ? ?得到N的双曲余弦值。?

? ? ? ?SELECT COSH(1) FROM DUAL;?

236. EXP(N)?

? ? ? ?得到N的E的N次幂。?

? ? ? ?SELECT EXP(1) FROM DUA