sql - 将 0 填充到返回的查询并插入到临时表中

标签 sql sql-server

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 格式如 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

最佳答案

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/

相关文章:

sql - 连接列而不包括具有空值的列?

mysql - SQL Server减去MySQL功能

sql - 使用 'unlimited' 时可以指定 "Select TOP (@variable) * From"吗?

java - 如何在获取列名的查询中省略第一个结果?

java - 键 'PRIMARY' 的重复实体

sql - 在单个列中合并两个具有不同值的查询并优先考虑第一个查询的最佳方法是什么?

sql - 如何比较 SQL Server 中的日期时间与仅日期

sql - 当多个 UNION 都进行相同的连接时,有没有办法使它们更有效?

sql - 根据与先前数据的差异更新数据

SQL 服务器 : how to select the rows in a table with the same value on a column but some exact values on another column for the grouped rows