不知如何实现最简便,谢谢。

解决方案 »

  1.   

    replicate('0',6-len(col1))+cast(col1 as varchar)
      

  2.   

    select right('000000'+ cast(78 as varchar),6)
    000078
      

  3.   

    declare @len int,@val intselect @len=6,@val=78
    select replicate('0',@len-len(@val))+cast(@val as varchar) as 'val'
      

  4.   

    try:
    /*===================================================
       功能:格式化字符串 ,如输入01 自动生成 0000001 
       备注:当位数达到10以上,要另写算法,否则出错
       设计:weiguohao
       日期:2006-03-11
      ===================================================*/
    CREATE FUNCTION FORMAT_STR
    (@strX Nvarchar(20),@FormatLength INT)
    RETURNS NVARCHAR(20) AS  
    BEGIN 
    DECLARE @Return NVARCHAR(20)
    DECLARE @Length INT
        SET @Length=LEN(@strX)
        IF @Length>=@FormatLength
    SET @Return=@strX
        ELSE
            BEGIN
    -- 格式化,只要是调用到数学函数POWER
    SET @Return=CAST(RIGHT(POWER(10,@FormatLength),@FormatLength-@Length) AS NVARCHAR(20))+@strX
            END
    RETURN @Return
    END
      

  5.   

    --功能:将数值型转成6位字符串的方法declare @i int
    set @i=66--字符串拼接法1
    select right('000000'+cast(@i as varchar),6)
    --字符串拼接法2
    select replicate('0',6-len(@i))+cast(@i as varchar)
      

  6.   

    试过了
    sdhylj(青锋-SS) 的
    replicate('0',6-len(col1))+cast(col1 as varchar)
    很好
    呵呵
    学习
      

  7.   

    但如果是12312要转换怎么办?-----------------
    select right('000000' + cast(12312 as varchar),6)
    没有问题呀。