公司性质: 股份制企业 员工人数: 少于50人 注册资金: 10 万 成立日期: 1997 
公司性质: 民营企业 员工人数: 少于50人 注册资金: 128 万 成立日期: 1998 
公司性质: 私营企业 员工人数: 少于50人 注册资金: 20 万 成立日期: 2008以上数据存在一个字段内想分解成以下四个字段
公司性质
员工人数
注册资金
成立日期

解决方案 »

  1.   

    用substring或者left函数慢慢截取吧=.=
      

  2.   

    /*  如果就四列可以用这个方法 */declare @str Nvarchar(50),@s Nvarchar(50)
    select @str = N'公司性质: 股份制企业 员工人数: 少于50人 注册资金: 10 万 成立日期: 1997',@s=''declare @t table (str1 nvarchar(100),str2 nvarchar(100))
    insert @t
    select N'公司性质: ',''
    union select N'员工人数: ','.'
    union select N'注册资金: ','.'
    union select N'成立日期: ','.'update @t
    set @s = replace(@str,str1,str2),@str = @sselect '公司性质'=parsename (@str,4),'员工人数'=parsename (@str,3),'注册资金'=parsename (@str,2),'成立日期'=parsename (@str,1)
    /*  结果 公司性质       员工人数    注册资金   成立日期                                                                                                                             
    ------------- ----------- --------- ----------
    股份制企业     少于50人    10 万     1997(1 row(s) affected) */
      

  3.   

    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    create table tb(code varchar(100))
    insert into tb
    select '公司性质: 股份制企业 员工人数: 少于50人 注册资金: 10 万 成立日期: 1997' union all
    select '公司性质: 民营企业 员工人数: 少于50人 注册资金: 128 万 成立日期: 1998' union all
    select '公司性质: 私营企业 员工人数: 少于50人 注册资金: 20 万 成立日期: 2008' while exists(select 1 from [tb] where charindex(':',code)>0)
    begin
    update tb set code=stuff(code,charindex(':',code)-4,5,',')
    where charindex(':',code)>0
    end
    update tb set code=replace(stuff(code,1,1,''),' ','')create table table_work(company varchar(20),people varchar(20),fund varchar(20),createyear char(4))declare @code varchar(8000)
    DECLARE cur_temp Cursor For 
    select code from tb
    OPEN cur_temp
    FETCH  cur_temp Into @code
    while @@fetch_status = 0 
    begin

    select @code='insert into table_work select '''+replace(@code,',',''',''')+''''
    exec(@code)
    FETCH  cur_temp Into @code
    endClose     cur_temp
    Deallocate   cur_temp
    select * from table_workdrop table table_work
    --------------------------------股份制企业 少于50人 10万 1997
    民营企业 少于50人 128万 1998
    私营企业 少于50人 20万 2008
      

  4.   

    create table tb(col nvarchar(100))
    insert into tb values(N'公司性质: 股份制企业 员工人数: 少于50人 注册资金: 10 万 成立日期: 1997') 
    insert into tb values(N'公司性质: 民营企业 员工人数: 少于50人 注册资金: 128 万 成立日期: 1998') 
    insert into tb values(N'公司性质: 私营企业 员工人数: 少于50人 注册资金: 20 万 成立日期: 2008')
    goselect 公司性质 = substring(col , charindex('公司性质: ',col) + 6 , charindex('员工人数',col) - charindex('公司性质: ',col) - 6 - 1) ,
           员工人数 = substring(col , charindex('员工人数: ',col) + 6 , charindex('注册资金',col) - charindex('员工人数: ',col) - 6 - 1) , 
           注册资金 = substring(col , charindex('注册资金: ',col) + 6 , charindex('成立日期',col) - charindex('注册资金: ',col) - 6 - 1) , 
           成立日期 = substring(col , charindex('成立日期: ',col) + 6 , len(col)) 
    from tbdrop table tb /*公司性质                                                                                                 员工人数                                                                                                 注册资金                                                                                                 成立日期                                                                                                 
    ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- 
    股份制企业                                                                                                少于50人                                                                                                10 万                                                                                                 1997
    民营企业                                                                                                 少于50人                                                                                                128 万                                                                                                1998
    私营企业                                                                                                 少于50人                                                                                                20 万                                                                                                 2008(所影响的行数为 3 行)*/