SQL 中我没发现有这样的函数。 你可以将4改大点,或这样: case when len(cast( intVariant as varchar))>=4 then cast( intVariant as varchar) else replicate('0',4-len(cast( intVariant as varchar)))+cast( intVariant as varchar) end 来做。若经常用,可以做个自定义函数。唉。要是有这样的函数我会不告诉你吗?告诉你方法了,自己转个弯嘛。
但是Convert函数无法完成Format(intVariant,"0000"),即,将某一整数转换成四位的字符编码,如0001,0002
replicate('0',4-len(cast( intVariant as varchar)))+cast( intVariant as varchar)
可以解决一部分问题,但是,intVariant是一个长度未知的变量,如果intVariant的长度超过4位,则以上语句就出错,或不能返回正确的结果。
我希望能达到如下结果:
如果intVar= 123 则结果返回“0123”,如果intVar = 123456 则结果返回“123456”在Access数据库中有Format函数,列如,Format(intVariant,"0000"),用起来相当方便,不知SQL Server中为何没有类似的功能。Format函数功能对于信息系统中自动生成一些物品编号是相当有用的。自动生成一些物品编号可能是 “字母”+ 日期 + 流水号
你可以将4改大点,或这样:
case when len(cast( intVariant as varchar))>=4
then cast( intVariant as varchar)
else replicate('0',4-len(cast( intVariant as varchar)))+cast( intVariant as varchar) end
来做。若经常用,可以做个自定义函数。唉。要是有这样的函数我会不告诉你吗?告诉你方法了,自己转个弯嘛。
但我心里还是万分的痛苦,为什么在Access数据库中如此简单的问题,在SQL Server中会如此的复杂。