Dưới đây là các ví dụ về việc thêm số 0 đứng đầu vào một số trong SQL, sử dụng các DBMS khác nhau.
Oracle
Oracle có TO_CHAR(number)
cho phép chúng ta thêm các số 0 ở đầu vào một số. Nó trả về kết quả của nó dưới dạng một chuỗi ở định dạng được chỉ định.
SELECT TO_CHAR(7, '000')
FROM DUAL;
Kết quả:
007
0
phần tử định dạng là những gì xuất ra các số không ở đầu. Nếu không muốn các số 0 ở đầu, chúng tôi có thể sử dụng 9
.
Đây là so sánh giữa 0
và 9
để chứng minh ý tôi:
SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9"
FROM DUAL;
Kết quả:
0 9 ______________ ______________ 001,234.46 1,234.46
G
dành cho dấu phân tách nhóm và D
là cho dấu phân cách thập phân. Xem danh sách các phần tử định dạng số này để biết danh sách đầy đủ.
Oracle cũng có LPAD()
hàm cho phép chúng ta thêm một số bằng các số 0 ở đầu (hoặc bất kỳ ký tự nào khác). Hãy xem 2 cách để định dạng một số với Zeros hàng đầu trong Oracle để làm ví dụ.
PostgreSQL
PostgreSQL cũng có TO_CHAR()
và nó hoạt động giống như hàm cùng tên của Oracle:
SELECT TO_CHAR(7, '000');
Kết quả:
007
Và đây là so sánh giữa 0
và 9
:
SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9";
Kết quả:
0 | 9 -------------+------------- 001,234.46 | 1,234.46
Xem Mẫu &Công cụ sửa đổi mẫu cho Định dạng số trong Postgres để biết danh sách đầy đủ các mẫu mẫu có thể được sử dụng với chức năng này trong PostgreSQL.
Giống như Oracle, PostgreSQL cũng có LPAD()
chức năng cho phép chúng tôi đệm số bằng các số không ở đầu. Hãy xem 2 cách để thêm Zeros hàng đầu trong PostgreSQL để làm ví dụ.
MySQL
MySQL có LPAD()
hàm cho phép chúng ta đệm phần bên trái của một chuỗi hoặc số với ký tự hoặc chuỗi ký tự đã chọn của chúng ta. Do đó, chúng ta có thể sử dụng nó để đệm số của mình bằng các số không:
SELECT LPAD(7, 3, 0);
Kết quả:
007
May mắn thay, chúng ta có thể chuyển số dưới dạng số, vì vậy trước tiên không cần chuyển nó thành chuỗi.
Xem Cách thêm Zeros hàng đầu vào một số trong MySQL để biết thêm.
MariaDB
Giống như MySQL, MariaDB cũng có LPAD()
hàm cho phép chúng tôi đệm phần bên trái của chuỗi hoặc số bằng ký tự hoặc chuỗi ký tự đã chọn của chúng tôi:
SELECT LPAD(7, 3, 0);
Kết quả:
007
Và giống như với MySQL, chúng ta có thể chuyển số dưới dạng số, vì vậy trước tiên không cần chuyển đổi nó thành chuỗi.
Xem Cách tạo một số với Zeros hàng đầu trong MariaDB để biết thêm.
Máy chủ SQL
SQL Server có FORMAT()
cho phép chúng tôi định dạng số bằng chuỗi định dạng:
SELECT FORMAT(7, '000');
Kết quả:
007
Đây là dấu phân tách nhóm và dấu phân tách thập phân:
SELECT FORMAT(1234, '0,000.00');
Kết quả:
1,234.00
Xem Thêm Zeros Dẫn đầu &Theo dõi trong SQL Server để biết thêm.
SQLite
SQLite có PRINTF()
hàm có thể được sử dụng để thêm các số không ở đầu một số:
SELECT PRINTF('%03d', 7);
Kết quả:
007
Xem Cách định dạng số với Zeros hàng đầu trong SQLite để được giải thích.
Cập nhật :SQLite 3.38.0 (phát hành ngày 22 tháng 2 năm 2022) được đổi tên thành PRINTF()
hàm thành FORMAT()
. PRINTF()
gốc tên được giữ lại làm bí danh để tương thích ngược.
Vì vậy, ví dụ trên có thể được thay đổi thành thế này:
SELECT FORMAT('%03d', 7);
Kết quả:
007