首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

mssql数据库字符串格式化有关问题

2013-08-01 
mssql数据库字符串格式化问题现有SN表如下:SNIDSNFormat1CK - YYYY - MM - DD - [000]2WWL - YYYY - M

mssql数据库字符串格式化问题
现有SN表如下:
SNID    SNFormat
1     "CK" - YYYY - MM - DD - [000]
2     "WWL" - YYYY - MM - DD - [000]
3     "WWT" - YYYY - MM - DD - [000]
4     "SK" - yyyy - mm - dd - [000] 
5     "DF" - yyyy - mm - dd - [000] 
6     "JT" - yyyy - mm - dd - [000] 
7     "JHD" - yyyy - mm - dd - [000] 

Bill表如下:
SNID       MaxNo
1             5
2             4
3             6
4             111
5             0
6             1
7             20

现在需求如下:我传入SNID和日期返回一个格式化后的的值。
比如:我传入SNID=1,日期=2013-07-24,
那么返回的值应该为CK-2013-MM-DD-006
我传入snid=4,日期=2013-07-24,
那么返回的值应该为SK-yyyy-mm-dd-112

还望DBA帮帮忙,先谢了。mssql数据库字符串格式化有关问题

数据库 格式化 MS?SQL
[解决办法]


Declare @ID int
Declare @Adate datetime

set @ID=1
Set @Adate='2013-07-24'


Declare @table1 table (SNID int ,SNFormat varchar(50))
Declare @table2table(SNID int, MaxNo int)
insert @table1
select 1,N'"CK" - YYYY - MM - DD - [000]'union all
select 2,N'"WWL" - YYYY - MM - DD - [000]'union all
select 3,N'"WWT" - YYYY - MM - DD - [000]'union all


select 4,N'"SK" - yyyy - mm - dd - [000]'union all
select 5,N'"DF" - yyyy - mm - dd - [000]'union all
select 6,N'"JT" - yyyy - mm - dd - [000]'union all
select 7,N'"JHD" - yyyy - mm - dd - [000]'
insert @table2
select 1,             5union all
select 2,             4union all
select 3,             6union all
select 4,             111union all
select 5,             0union all
select 6,             1union all
select 7,             20



select t1.SNID,t2.MaxNo,t1.SNFormat
,AfterReplace=Replace(Replace(t1.SNFormat,' ',''),'"','')
,FormatStr= Replace(Replace(Replace(Replace(t1.SNFormat,' ',''),'"',''),'yyyy-mm-dd',convert(char(10),@Adate,120)),'[000]',right('000'+cast(t2.MaxNo+1 as varchar),3))
from @table1 t1
join @table2 t2 on t1.SNID= t2.SNID
--where t1.SNID=@ID 

/*
SNIDMaxNoSNFormatAfterReplaceFormatStr
15"CK" - YYYY - MM - DD - [000]CK-YYYY-MM-DD-[000]CK-2013-07-24-006
24"WWL" - YYYY - MM - DD - [000]WWL-YYYY-MM-DD-[000]WWL-2013-07-24-005
36"WWT" - YYYY - MM - DD - [000]WWT-YYYY-MM-DD-[000]WWT-2013-07-24-007
4111"SK" - yyyy - mm - dd - [000]SK-yyyy-mm-dd-[000]SK-2013-07-24-112
50"DF" - yyyy - mm - dd - [000]DF-yyyy-mm-dd-[000]DF-2013-07-24-001
61"JT" - yyyy - mm - dd - [000]JT-yyyy-mm-dd-[000]JT-2013-07-24-002
720"JHD" - yyyy - mm - dd - [000]JHD-yyyy-mm-dd-[000]JHD-2013-07-24-021
*/ 

热点排行