SQL

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

发布于 2021-03-12 10:23:49

我要做的是从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
关注者
0
被浏览
85
1 个回答
  • 面试哥
    面试哥 2021-03-12
    为面试而生,有面试问题,就找面试哥。

    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看