我将一个文本文件导入MSSQL,有一个条件是,文本文件其中的一个字段为可以为XXX,YYY如果为上面的那样的话,在SQL的表中就是插入两条记录即那个字段,XXX一条记录,YYY一条记录,
这样怎么写,求大侠们看看,分不够可以加

解决方案 »

  1.   

    可以 先导入再折分折分方法参照:/*
    表的结构:
    year_month           card_id             rest_days 2004-01              0100001             01,07,09,14
    2004-01              0100002             01,07,12,21
    2004-01              0100003             01,04,13,29
    ....................................................
    2004_04              0100001             01,07,09,14
    2004_04              0100002             12,07,12,21
    2004_04              0100003             21,04,13,29
    */
    declare @a table(year_month varchar(10),card_id varchar(10),rest_days varchar(20))insert @a select '2004-01','0100001','01,07,09,14'
    union all select '2004-01','0100002','01,07,12,21'
    union all select '2004-01','0100003','01,04,13,29'
    union all select '2004_04','0100001','01,07,09,14'
    union all select '2004_04','0100002','12,07,12,21'
    union all select '2004_04','0100003','21,04,13,29'select card_id,year_month+'-'+substring(rest_days,N,charindex(',',rest_days +',',N)-N) as d
    from @a a,
    (select 1 as N
    union all select 2
    union all select 3
    union all select 4
    union all select 5
    union all select 6
    union all select 7
    union all select 8
    union all select 9
    union all select 10
    union all select 11) b 
    where substring(','+rest_days,N,1)= ',' 
    order by card_id,N
    /*
    card_id    d                               
    ---------- ------------------------------- 
    0100001    2004-01-01
    0100001    2004_04-01
    0100001    2004_04-07
    0100001    2004-01-07
    0100001    2004-01-09
    0100001    2004_04-09
    0100001    2004_04-14
    0100001    2004-01-14
    0100002    2004-01-01
    0100002    2004_04-12
    0100002    2004_04-07
    0100002    2004-01-07
    0100002    2004-01-12
    0100002    2004_04-12
    0100002    2004_04-21
    0100002    2004-01-21
    0100003    2004-01-01
    0100003    2004_04-21
    0100003    2004_04-04
    0100003    2004-01-04
    0100003    2004-01-13
    0100003    2004_04-13
    0100003    2004_04-29
    0100003    2004-01-29(所影响的行数为 24 行)*/