同事给了份Excel 数据,导到数据库之后再查出来时发现顺序不好弄。于是想从数据源中做处理。
由于数据存在,年/月 与 年/月/日 的格式不好用datetime保存,于是用varchar保存。
数据处理主要有两点,1,拆分,2,补全
下面是拆分代码
create function [dbo].[SplitIn](@c varchar(max),@split varchar(2)) returns @t table(col varchar(400)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c),'') end insert @t(col) values (@c) return end
补全我是用了 REPLICATE 函数
DECLARE @Result nvarchar(max) set @Result='' select @Result=@Result+isnull(REPLICATE('0',2-len(col)),'')+cast(col as varchar) from SplitIn('2015/1','/') select @Result
结果如下:
自己把第二段sql封成函数,就可以在sql语句中调用了..