ORACLE常见问题1000问(之六)

ORACLE内部函数篇 字符串
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 DUAL;

237. FLOOR(N)
得到小于或等于N的最小整数.
SELECT FLOOR(5.6) FROM DUAL;

238. LN(N)
得到N的自然对数.
SELECT LN(1) FROM DUAL;

239. LOG(M,N)
得到以M为底N的对数.
SELECT LOG(2,8) FROM DUAL;

240. MOD(M,N)
得到M除以N的余数.
SELECT MOD(100,7) FROM DUAL;

241. POWER(M,N)
得到M的N幂.
SELECT POWER(4,3) FROM DUAL;

242. ROUND(N,M)
将N舍入到小数点后M位.
SELECT (78.87653,2) FROM DUAL;

243. SIGN(N)
当N<0时,得到-1;
当N>0时,得到1;
当N=0时,得到0;
SELECT SIGN(99) FROM DUAL;

244. SINH(N)
得到N的双曲正弦值.
SELECT SINH(1) FROM DUAL;

245. SORT(N)
得到N的平方根,N>=0
SELECT SORT(9) FROM DUAL;

246. TAN(N)
得到N的正切值.
SELECT TAN(0) FROM DUAL;

247. TANH(N)
得到N的双曲正切值.
SELECT TANH(0) FROM DUAL;

248. TRUNC(N,M)
得到在M位截断的N的值.
SELECT TRUNC(7.7788,2) FROM DUAL;

249. COUNT()
计算满足条件的记录数.
SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';

250. MAX()
对指定的列求最大值.
SELECT MAX(COL1) FROM TABLE1;

251. MIN()
对指定的列求最小值.
SELECT MIN(COL1) FROM TABLE1;

252. AVG()
对指定的列求平均值.
SELECT AVG(COL1) FROM TABLE1;

253. SUM()
计算列的和.
SELECT SUM(COL1) FROM DUAL;

254. TO_NUMBER(CHAR) 
将字符转换为数值.
SELECT TO_NUMBER('999') FROM DUAL;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章