制作SQL过程以向字符串添加字符

时间:2014-06-23 13:36:02

标签: sql sql-server sql-server-2008

您好我正在尝试在SQL中创建一个过程,在字符串中添加一堆零,以完成其长度为18个字符,例如:

0446793932' ====> '000000000446793932

并且此过程将进入更新命令

UPDATE Table SET variable = prototype_procedure('0446793932') WHERE .......

我对SQL或程序了解不多,如果有人能引导我通过可以帮助我理解的东西,我将不胜感激,

2 个答案:

答案 0 :(得分:3)

您可以使用REPLICATE功能来实现您想要的效果。

http://msdn.microsoft.com/en-us/library/ms174383.aspx

DECLARE @t NVARCHAR(10) = N'0446793932'
SELECT @t, REPLICATE(N'0', 18 - LEN(@t)) + @t 

答案 1 :(得分:0)

取决于您在SQL中使用的语言,最好的办法是在将数据发送到数据库之前将字符添加到字符串中,这样您就不会冒险搞砸表。

我会在php中使用类似的东西,例如:

$myvar = "123456";
$myvarLength = strlen($myvar);
if($myvarLength < 12){
     while{$myvarLength != 12){
         $myvar = "0".$myvar;
         $myvarlength = strlen($myvar);
     }
}

这应该为你完成工作