首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 字符操縱函數與數值函數深度實戰:CONCAT、SUBSTR、INSTR、LPAD、ROUND/TRUNC

     編輯:Oracle 資料庫基礎

字符操縱與數值運算是 SQL 日常開發的 80% 工作量。本文聚焦 CONCAT/SUBSTR/INSTR/LPAD 字符族與 ROUND/TRUNC/MOD 數值族,通過實戰案例講透參數語義、邊界行為、組合技巧。

一、字符操縱函數實戰

函數語法/示例結果/說明
CONCATCONCAT(ename, job) ≡ ename || jobSMITHCLERK
LENGTHLENGTH(ename) / LENGTH('同學們')5 / 3(字符語義)
SUBSTRSUBSTR(ename, 1, 4)SMITH → SMIT
INSTRINSTR(ename, 'S')SMITH→1, ALLEN→0, JONES→5(1-based,未找到返回 0)
LPADLPAD(ename, 10, '*')*****SMITH(左填充至 10 位)
RPADRPAD(ename, 10, '*')SMITH*****

二、數值函數:ROUND/TRUNC 核心對比

SELECT ROUND(45.923, 2), ROUND(45.923, 0), ROUND(45.923, -1) FROM dual; -- 45.92, 46, 50
SELECT TRUNC(45.923, 2), TRUNC(45.923, 0), TRUNC(45.923, -1) FROM dual; -- 45.92, 45, 40

參數 m 語義:

  • m > 0:小數點右側保留 m 位
  • m = 0:整數
  • m < 0:小數點左側第 |m| 位(十位、百位...)四捨五入/截斷

三、MOD 取模

SELECT MOD(10, 3) FROM dual;  -- 1

四、綜合場景:工資條格式化輸出

SELECT ename,
       LPAD(TO_CHAR(sal, 'L99,999.00'), 15, ' ') AS formatted_sal,
       RPAD('Grade: ' || CASE WHEN sal > 3000 THEN 'A' ELSE 'B' END, 20, '.') AS grade_bar
FROM emp;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved