繁体   English   中英

将第二列值中前导零的两列连接起来,SQL

[英]Concat two columns with leading zeroes in the second column value, SQL

我正在尝试从具有特定格式的第二列值的两列中合并值。 第二列的值应为“ 0000”格式。 我有这样的当前查询

SELECT 
     ISNULL(BatchID,'')+ISNULL(UID,'') as BatchIDUID 
FROM 
     myTable 
WHERE 
     id=249

这给了我输出

1509161               //BatchID = 150961 and UID = 1

它应该是格式

1509160001            //BatchID = 150961 and UID = 1
1509160022            //BatchID = 150961 and UID = 22
1509160333            //BatchID = 150961 and UID = 333
1509164444            //BatchID = 150961 and UID = 4444

使用RIGHT

SELECT 
     ISNULL(BatchID,'')+ISNULL(RIGHT('0000' + UID, 4),'') as BatchIDUID 
FROM myTable 
WHERE  id=249;

一般的做法:

DECLARE @pad INT = 4;
SELECT RIGHT(REPLICATE('0', @pad) + /* column/variable */, @pad);

注意,您可以使用算术而不是将值转换为字符串来执行此操作:

select COALESCE(BatchId, 0) * 10000 + COALESCE(UId, 0)

然后可以将其转换为字符串:

select CAST(COALESCE(BatchId, 0) * 10000 + COALESCE(UId, 0) as VARCHAR(10))

这恰好适合您的值(适合整数)。 但是,您可以使用小数来支持更长的值:

select COALESCE(CAST(BatchId as DECIMAL(20, 0)), 0) * 10000 + COALESCE(UId, 0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM