首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请一个字段更新的语句的写法 [已结贴,结贴人:yylzq]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yylzq
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-19 00:55:58 楼主
    比如有数据表aaa,内有两个字段a和b。a的类型是varchar,b的类型是int。
    a中的数据很多是以数字结尾的,比如'aa1'、'bb2'等,也有不是以数字结尾的,如'aaa'、'bbb'等。
    现在想把所有字段a以数字结尾的记录的最后一个数字更新到b字段中,也就是说,更新后如下所示:
    a      b
    aa1  1
    bb2  2
    dd8  8
    ccc  null
    这个应该怎么实现呀?
    多谢了
    40  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianyusunkuangyu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 06:20:071楼 得分:14
    update aaa
    set b= case when patindex('%[0-9]%',right(a,1))>0  then right(a,1) else null end
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 08:57:402楼 得分:13
    update tb
    set b=case  when ascii(right(a,1)) between 48 and 57 then right(a,1) else null end
    select * from tb
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linux_ch
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 09:24:203楼 得分:13
    update aaa set b=
    (case cast(substring(a,len(a),1) as int)
    when isnumeric(cast(substring(a,len(a),1) as int))
    then substring(a,len(a),1) end)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • acupofnescafe
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 10:13:334楼 得分:0
    楼主朋友,能说的再明白点吗?a字段如果是以数字结尾,肯定只有一位数字吗,像aa123这样的值村不存在?请您再详细说明一下.楼上各位朋友的方法在a字段的值末尾只有1位数字时,都是正确的.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yylzq
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 10:14:295楼 得分:0
    多谢了。
    总结了以上各位的帖子,用如下方法实现最简单:
    UPDATE aaa
    SET b = CASE WHEN isnumeric(RIGHT(a, 1)) = 1 THEN RIGHT(a, 1) ELSE 0 END
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yylzq
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 10:17:506楼 得分:0
    多谢关注。不过我在问题里说的很清楚了,是最后一个数字更新到b字段中
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved