一尘不染

填充0以返回查询并插入到临时表中

sql

我要做的是从Navigator数据库表中获取用户订购历史记录。我们有一个将网站表中的订单放入导航器表中的过程(因为需要对导航表进行格式化)。

我想查询网站表以使用其用户ID从登录用户获取订单:

SELECT OrderID FROM db1.zm.dbo.zOrder WHERE AccountID = 631180 (这将返回多个订单ID)

db1是服务器,zm是数据库。

返回的OrderID的格式类似于45655675等。我想将它们插入到一个临时表中,例如: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

阅读 348

收藏
2021-03-08

共1个答案

一尘不染

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
2021-03-08