我有一组数据,保存在arraylist中
螺钉第2层
螺机尾第1层
支架第3层

怎样能将信息保存为如下
名称     层数
螺钉      2
机尾      1
支架      3

解决方案 »

  1.   

    update arraylist set 层数=2 where 名称='螺钉'
    update arraylist set 层数=1 where 名称='机尾'
    update arraylist set 层数=3 where 名称='支架'?
      

  2.   

    把你的数组循环
    每一个字符串分成 名称、层数
    然后insert 不就可以了
      

  3.   

    create table arraylist(名称 nvarchar(10))
    insert into arraylist(名称) select '螺钉第2层'
    insert into arraylist(名称) select '螺机尾第1层'
    insert into arraylist(名称) select '支架第3层'
    go
    --如表结构中无层数,先添加列名
    alter table arraylist add 层数 int
    go
    --更新
    update arraylist set 层数=substring(名称,charindex('第',名称)+1,len(名称)-charindex('第',名称)-1),名称=left(名称,charindex('第',名称)-1)
    --检查
    select * from arraylist
    go
    drop table arraylist
    /*
    名称         层数
    ---------- -----------
    螺钉         2
    螺机尾        1
    支架         3(3 行受影响)*/
      

  4.   

    如果不用存储过程而用一般的sql语句怎么做呢?
    我使用for循环已经将信息插入到数据库中了,数据库的结果为
    螺钉第2层
    螺机尾第1层
    支架第3层
      

  5.   


    /*
    针对5楼的进行了一些改进,当层数列中,的层数为2为数字或3位数字时,可以自动判断并获取
    例如有数据:发动机第22层
    */
    -------------->
    create table arraylist(名称 nvarchar(10))insert into arraylist values('螺钉第2层')
    insert into arraylist values('螺机尾第1层')
    insert into arraylist values('支架第3层')
    insert into arraylist values('发电机第22层')
    select * from arraylistalter table arraylist add  层数 varchar(2)update  arraylist set 层数=substring(名称,charindex('第',名称)+1,charindex('层',名称)-charindex('第',名称)-1),名称=left(名称,charindex('第',名称)-1)select * from arraylistdrop table arraylist
    /*
    名称         层数
    ---------- -----------
    螺钉     2
    螺机尾     1
    支架     3
    发电机     22*/
      

  6.   

    可以按照一定规律先拆分,再insert