从 Formatting Numbers by padding with leading zeros in SQL Server 中获取填充 0 的 sql
我想要做的是从我们的 Navigator 数据库表中获取用户订单历史记录。我们有一个将网站表中的订单放入导航器表中的过程(因为需要为导航表格式化订单)。
我想查询网站表以使用用户 ID 从登录用户那里获取订单:
SELECT OrderID FROM db1.zm.dbo.zOrder WHERE AccountID = 631180
(这会返回多个订单 ID)
db1
是服务器,zm
是数据库。
返回的 OrderID 格式如 4565
、5675
等。我想将它们插入到临时表中,例如:Z0004565
带有 Z 和足够多的前导 0 以达到 7 位数字。
如何修改 select 语句来做到这一点?或者我可以。
填充 0 的 SQL:SELECT REPLICATE('0', 7-LEN(4665)) + 4665
SQL 以下评论:
DECLARE @OrderNumTable table (orderNum varchar(20))
INSERT INTO @OrderNumTable EXEC( SELECT (''Z'' + REPLICATE(''0'', 7-len(OrderID)) + OrderID)FROM db1.zm.dbo.zOrder WHERE AccountID = 631180
最佳答案
SELECT OrderID,
'Z'+RIGHT('0000000'+CAST(OrderID AS VARCHAR(7)),7)
FROM db1.zm.dbo.zOrder
WHERE AccountID = 631180
在问题编辑后更新
DECLARE @OrderNumTable table (orderNum varchar(8))
INSERT INTO @OrderNumTable(orderNum)
SELECT 'Z'+RIGHT('0000000'+CAST(OrderID AS VARCHAR(7)),7)
FROM db1.zm.dbo.zOrder
WHERE AccountID = 631180
关于sql - 将 0 填充到返回的查询并插入到临时表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20619696/