萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

SQL Server 字串格式化:以前置零補齊流水號的實用技巧

在 SQL Server 中若需將數字轉為固定長度且帶前導零的字串(例如流水號),發現內建並無現成函數。針對每月重置、最大序號不超過 10 萬的情境,最簡單的做法是搭配 RIGHT() 與字串串接:

DECLARE @SN INT;
DECLARE @SNLen INT = 5;

SET @SN = 1;
SELECT RIGHT('0000000000' + CAST(@SN AS VARCHAR(10)), @SNLen); -- 00001

SET @SN = 333;
SELECT RIGHT('0000000000' + CAST(@SN AS VARCHAR(10)), @SNLen); -- 00333

SET @SN = 55555;
SELECT RIGHT('0000000000' + CAST(@SN AS VARCHAR(10)), @SNLen); -- 55555

原理是先在數字前補足夠多「0」,再用 RIGHT() 取右側指定長度。若需搭配年月產生完整單號,可再配合 DATENAME() 取得年份與月份:

DECLARE @OfYear NVARCHAR(4), @OfMonth NVARCHAR(2), @DateTime DATETIME = GETDATE();
SET @OfYear  = DATENAME(yyyy, @DateTime);
SET @OfMonth = DATENAME(mm, @DateTime);
-- 組合範例:20240500001

此法無需建立自訂函數,效能良好,適合中小型流水號需求。

copyright © 萬盛學電腦網 all rights reserved