我需要从数据库返回两个连接为'field1-field2‘的字段。第二个字段是int,但需要以固定长度5和前导0返回。我使用的方法是:
SELECT Field1 + '-' + RIGHT('0000' + CAST(Field2 AS varchar),5) FROM ...有没有更有效的方法来做到这一点?
发布于 2009-04-22 19:55:10
这几乎就是解决问题的方法:Adding Leading Zeros To Integer Values
因此,为了保存链接,查询如下所示,其中#Numbers是表,Num是列:
SELECT RIGHT('000000000' + CONVERT(VARCHAR(8),Num), 8) FROM #Numbers对于负值或正值
declare @v varchar(6)
select @v = -5
SELECT case when @v < 0
then '-' else '' end + RIGHT('00000' + replace(@v,'-',''), 5) 发布于 2009-04-22 20:43:41
另一种方式(不进行强制转换或转换):
SELECT RIGHT(REPLACE(STR(@NUM),' ','0'),5)发布于 2009-04-22 20:01:09
如果你负担得起/想要在你的数据库中有一个函数,你可以使用类似这样的东西:
CREATE FUNCTION LEFTPAD
(@SourceString VARCHAR(MAX),
@FinalLength INT,
@PadChar CHAR(1))
RETURNS VARCHAR(MAX)
AS
BEGIN
RETURN
(SELECT Replicate(@PadChar, @FinalLength - Len(@SourceString)) + @SourceString)
ENDhttps://stackoverflow.com/questions/778909
复制相似问题