การปรับแต่งผลลัพธ์

Oracle SQL เบื้องต้น

Hadrien Lacroix

Content Developer

ฟังก์ชัน

ฟังก์ชันใช้สำหรับ:

  • การคำนวณ
  • การจัดรูปแบบ
  • การจัดการข้อมูล
  • การแปลงชนิดข้อมูล
Oracle SQL เบื้องต้น

ฟังก์ชันและชนิดข้อมูล

ข้อมูลตัวเลข ข้อมูลอักขระ ข้อมูลวันที่
AVG x
SUM x
MIN x x x
COUNT x x x

ชนิดข้อมูลกำหนดว่าคอลัมน์เก็บข้อมูลประเภทใดได้บ้าง

Oracle SQL เบื้องต้น

ประเภทของฟังก์ชัน

  • ฟังก์ชันอักขระ
    • อินพุต: ค่าอักขระ
    • เอาต์พุต: ค่าอักขระ ตัวเลข หรือวันที่
  • ฟังก์ชันตัวเลข
    • อินพุต: ค่าตัวเลข
    • เอาต์พุต: ค่าตัวเลข
  • ฟังก์ชันวันที่
  • ฟังก์ชันทั่วไป
  • ฟังก์ชันแปลงข้อมูล
Oracle SQL เบื้องต้น

การจัดการตัวพิมพ์: ตัวพิมพ์ใหญ่

UPPER(column): แปลงค่าอักขระทั้งหมดเป็นตัวพิมพ์ใหญ่

SELECT UPPER(State) AS State, UPPER(PostalCode) AS PostalCode
FROM Customer
| State | PostalCode |
|-------|------------|
| CA    | 95014      |
| DF    | 71020-677  |
| AB    | T6G 2C7    |
| BC    | V6C 1G8    |
| QC    | H2G 1A7    |
| ...   |            |
Oracle SQL เบื้องต้น

การจัดการตัวพิมพ์: ตัวพิมพ์เล็ก

LOWER(column): แปลงค่าอักขระทั้งหมดเป็นตัวพิมพ์เล็ก

SELECT LOWER(Email) AS LowercaseEmail
FROM Customer
| LowercaseEmail           |
|--------------------------|
| [email protected]     |
| [email protected]    |
| [email protected]      |
| [email protected]    |
| ...                      |
Oracle SQL เบื้องต้น

การดึงสตริงย่อย

SUBSTR(column, m, n): คืนค่าส่วนหนึ่งของสตริงจากตำแหน่ง m ความยาว n อักขระ

SELECT Phone
FROM Customer
| Phone             |
|-------------------|
| +56 02 635 4444   |
| +91 0124 39883988 |
| +44 0131 315 3300 |

เป้าหมาย: ดึงรหัสประเทศจากหมายเลขโทรศัพท์โดยไม่มี +

Oracle SQL เบื้องต้น

การดึงสตริงย่อย

เป้าหมาย: ดึงรหัสประเทศจากหมายเลขโทรศัพท์โดยไม่มี +

SELECT Phone, SUBSTR(Phone, 2, 2) AS cc
FROM Customer
| Phone             | cc |
|-------------------|----|
| +56 (0)2 635 4444 | 56 |
| +91 0124 39883988 | 91 |
| +44 0131 315 3300 | 44 |
| +39 06 39733434   | 39 |
| +48 22 828 37 39  | 48 |
| ...               |    |
Oracle SQL เบื้องต้น

ฟังก์ชันซ้อนกัน

เป้าหมาย: สร้าง username สำหรับลูกค้าจากตัวอักษร 5 ตัวแรกของนามสกุลและ ID

SELECT LastName, CustomerId, CONCAT(SUBSTR(LastName,1,5), CustomerId) AS UserName
FROM customer
| LastName | CustomerId | UserName |
|----------|------------|----------|
| Almeida  | 12         | Almei12  |
| Barnett  | 28         | Barne28  |
| Bernard  | 39         | Berna39  |
| Brooks   | 18         | Brook18  |
| Brown    | 29         | Chase21  |
| ...      |            |          |
Oracle SQL เบื้องต้น

ฟังก์ชันอักขระที่มีประโยชน์อื่น ๆ

LENGTH(val): คืนค่าความยาวของสตริง

SELECT LENGTH('cat')
3

REPLACE(val, m, n): แทนที่ m ด้วย n ใน val

SELECT REPLACE('kayak', 'k', 'y')
yayay
Oracle SQL เบื้องต้น

การปัดเศษ

ROUND(column, m): ปัดเศษ column เป็นทศนิยม m ตำแหน่ง

SELECT Total, ROUND(Total, 1) AS Round1, ROUND(Total, 0) AS Whole 
FROM Invoice
| Total     | Round1 | Whole |
|-----------|--------|-------|
| 11.94     | 11.9   | 12    |
| 14.91     | 14.9   | 15    |
| 0.99      | 1.0    | 1     |
| 5.94      | 5.9    | 6     |
| 7.96      | 8.0    | 8     |
| ...       |        |       |
Oracle SQL เบื้องต้น

การตัดทศนิยม

TRUNC(column, m): ตัดทิ้ง column ให้เหลือทศนิยม m ตำแหน่ง

SELECT DISTINCT Total, ROUND(Total, 1) AS Dec1, TRUNC(Total, 1) AS Trun1 
FROM Invoice
| Total | Dec1 | Trun1 |
|-------|------|-------|
| 15.86 | 15.9 | 15.8  |
| 13.86 | 13.9 | 13.8  |
| 8.94  | 8.9  | 8.9   |
| 1.99  | 2.0  | 1.9   |
| 7.96  | 8.0  | 7.9   |
Oracle SQL เบื้องต้น

โมดูโล

MOD(column1, column2): คืนค่าเศษเหลือจากการหาร

SELECT MOD(14, 4)
2
Oracle SQL เบื้องต้น

โมดูโล

MOD(column1, column2): คืนค่าเศษเหลือจากการหาร

SELECT MOD(14, 2)
0
SELECT MOD(15, 2)
1
Oracle SQL เบื้องต้น

โมดูโล

จำนวนพนักงานเป็นเลขคู่หรือไม่?

SELECT MOD(COUNT(Employee),1) 
FROM Employee
0

ใช่

Oracle SQL เบื้องต้น

มาฝึกกันเถอะ!

Oracle SQL เบื้องต้น

Preparing Video For Download...