SQL Server:新增前導零
您的舊版 SQL Server 2000 資料庫使用 char(6)
表示員工徽章編號,以確保格式一致且帶有前導零。 然而,您的新 Web 應用程式將它們儲存為整數以提高效率。 這在查詢資料時提出了格式化挑戰。
以下是如何在 SQL 查詢中格式化帶有前導零的整數:
使用 REPLICATE 的解決方案:
REPLICATE
函數提供了一個優雅的解決方案:
<code class="language-sql">SELECT REPLICATE('0', 6 - LEN(employeeId)) + employeeId FROM dbo.RequestItems WHERE ID = 0;</code>
調整REPLICATE
中的'6'來控制填充字串的總長度。 此範例保持六個字元的長度。
例如,employeeId
為 7135 將回傳「007135」。
處理 INT 欄位:
如果 employeeId
是 INT
列,則使用 RTRIM
隱式轉換為 VARCHAR
:
<code class="language-sql">SELECT REPLICATE('0', 6 - LEN(RTRIM(employeeId))) + RTRIM(employeeId) FROM dbo.RequestItems WHERE ID = 0;</code>
刪除前導零:
要擷取原始數字(不含前導零),請使用 RIGHT
和 PATINDEX
函數:
<code class="language-sql">SELECT RIGHT(employeeId, (LEN(employeeId) - PATINDEX('%[^0]%', employeeId)) + 1) FROM dbo.RequestItems WHERE ID = 0;</code>
此方法提供了一個強大的解決方案,用於管理 C# 程式碼和 SQL Server 查詢中的前導零,確保整個應用程式中的資料一致性。
以上是如何在 SQL Server 查詢中用前導零填入數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!