我要做的是从Navigator数据库表中获取用户订购历史记录。我们有一个将网站表中的订单放入导航器表中的过程(因为需要对导航表进行格式化)。
我想查询网站表以使用其用户ID从登录用户获取订单:
SELECT OrderID FROM db1.zm.dbo.zOrder WHERE AccountID = 631180 (这将返回多个订单ID)
SELECT OrderID FROM db1.zm.dbo.zOrder WHERE AccountID = 631180
db1是服务器,zm是数据库。
db1
zm
返回的OrderID的格式类似于4565,5675等。我想将它们插入到一个临时表中,例如:Z0004565具有一个Z和足够的前导0以击中该数字的7位数字。
4565
5675
Z0004565
如何修改select语句来做到这一点?还是可以
用于填充0的SQL: SELECT REPLICATE('0', 7-LEN(4665)) + 4665
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