永发信息网

sql 更新语句

答案:3  悬赏:80  手机版
解决时间 2021-08-10 18:04

同表下:有四字段分别:资料,性别,姓名,年龄,地区

资料字段内容是格式是:男,张三,29岁,杭州

我用update 表 set 性别=left(资料,charindex(',',资料)-1) 但是后面要怎么解决?

求完整语句!

 

 

最佳答案
--本人已测试过,没问题,望采纳谢谢
--创建存储过程test_SP
create proc test_SP
as
begin
 --定义@Sex性别,@Name姓名,@Age年龄,@Area地区,@ziliao资料  变量
 declare @Sex varchar(10),@Name varchar(10),@Age varchar(10),@Area varchar(10),@ziliao varchar(100)
 --定义资料字段@idx1,2,3是用来保存逗号在字符串中的位置
 declare @idx1 int ,@idx2 int ,@idx3 int 
 --定义游标C_test,访问数据集合,详细自己查资料去
 Declare C_test Cursor
 --ziliao(资料字段来自哪个表) (ziliaoinfo)
 for Select ziliao from ziliaoinfo
 --打开游标
 open C_test
  --执行第一次提取,得到的结果集的首行
  fetch next from C_test into @ziliao
  --检测@@fetch_Status,若仍有行,则继续循环
  --只要上次提取获得成功,就会执行下面的提取
  while @@fetch_Status =0
  begin
    --本人也是新手,不知道怎么在T—SQL中把字符分组,所以用笨拙的方法,不过朋友您也想到了。
    --获得第一个逗号在整个ziliao(资料)字段中出现的位置,    然后用Substring 函数截取性别
    Select @idx1=charindex(',',@ziliao)    ,@Sex=substring(@ziliao,0,@idx1),
    --获得第二个逗号在截取substring(@ziliao,@idx1+1,len(@ziliao)) 因为@idx1+1 字符串变成了例如张三,29岁,杭州, 然后用Substring 函数截取姓名
    @idx2=charindex(',',substring(@ziliao,@idx1+1,len(@ziliao)))    ,@Name=(substring(substring(@ziliao,@idx1+1,len(@ziliao)),0,@idx2)),
    --获得第三个逗号在截取substring(@ziliao,@idx1+@idx2+1,len(@ziliao)) 因为@idx2+1 字符串变成了例如29岁,杭州, 然后用Substring 函数截取年龄
    @idx3=charindex(',',substring(@ziliao,@idx1+@idx2+1,len(@ziliao))),@Age=substring(substring(@ziliao,@idx1+@idx2+1,len(@ziliao)),0,@idx3),
    --如果还有逗号就声明变量然后substring(@ziliao,@idx1+@idx2+@idx3+……+1,len(@ziliao))
    --获得最后个逗号在截取直接用前面三个出现的位置加起来然后用Substring 函数截取地区
    @Area=substring(@ziliao,@idx1+@idx2+@idx3+1,len(@ziliao))
    --然后向数据表插入新数据,   朋友您说是更新,又没给出根据什么条件来所以我就用插入语句,你想更新的话你自己改下语句,添加下条件就可以了。
    insert into tb_user (Sex,[Name],Age,Area) values (@Sex,@Name,@Age,@Area)
  fetch next from C_test into @ziliao
  end
 close C_test --关闭游标
 deallocate C_test --释放游标
end
全部回答
update 表 set 性别='男',姓名='张三',年龄='29岁',地区='杭州' where 性别 IN ( '男','女' ) 其中 where 性别 IN ( '男','女' ) 可以设为 某一个字段(实例中为性别) 在某几个值(实例中为‘男’,‘女’)之间

请问你需要更新的一共是多少个字段的资料呢?全部。还是只是性别而已

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么查看我的网卡是否正常?
学化妆有前途吗?哪里最好呢?
谁能帮我测试个木马
JJ多长才算正常?
怎样让心情变好....
谁能告诉我怎么练七十二路擒拿手,有重赏!看
谁知道手机社区里的幸福城堡怎样求婚?
从萍乡到温州火车费和汽车费多少。。。速度点
必须买真爱指环吗
为什么QQ邮箱打开的速度那么慢?
东方神起铃声 不要歌曲
不小心给家里狗狗爪子抓伤了,有事吗?
为什么我的笔记本在玩街头篮球的时候会突然管
有什么与三傻大闹宝莱坞类似的电影?
炫舞怎么在游戏中发表情。
推荐资讯
请问是现代伊兰特好不是锐动好?
热门有几个飞车啊
晚上睡不着觉能做些什么
怎么开通游戏人生 谁帮我开下谢谢
下载落花流水春已去
三星3518显示屏怎么关不了
爱民区牡丹江四季平价大药房地址在哪,我要去
英山县黄冈菁丝丽颜美容美发在哪里啊,我有事
DNF叫人用G带网络中断也封我号为什么
为什么人都活的怎累都愿意活下去呢还不如一死
上海自来水来自海上。谁能对出下联哈。从左到
登录我的问问
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?