得到sql来填充0:Formatting Numbers by padding with leading zeros in SQL Server
我想要做的是从Navigator数据库表中获取用户订单历史记录。我们有一个流程将网站表中的订单放入导航器表中(因为需要为导航表格式化订单)。
我想查询网站表以使用用户ID从登录用户获取订单:
SELECT OrderID FROM db1.zm.dbo.zOrder WHERE AccountID = 631180
(这会返回多个订单ID)
db1
是服务器,zm
是数据库。
返回的订单ID的格式类似于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
答案 0 :(得分:3)
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
答案 1 :(得分:2)
你能不能只在前面添加Z
?
SELECT 'Z' + REPLICATE('0', 7-LEN(OrderID)) + LTRIM(STR(OrderID))