一个关于Update的SQL语句,请高手指点

yuxuan 2002-11-29 09:58:40
我想用一条Update语句实现,Id字段的互换,如:

表A(ID,Value):

1 a
2 b
3 c
4 d
===============
一条SQL语句实现更新(其中ID是主键):

1 b
2 a
3 c
4 d




...全文
72 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
逍遥小贼 2002-12-01
  • 打赏
  • 举报
回复
如果是这样,我想你的ID字段就不能是自增的了,应该由程序来控制ID字段的增加,这样当用户调整顺序时,你就可以方便的进行控制了,你可以将两个要互换的纪录的ID进行互换,而不需要互换其他的字段
yuxuan 2002-11-30
  • 打赏
  • 举报
回复
看样子一下子实现不了
yuxuan 2002-11-29
  • 打赏
  • 举报
回复
谢谢大家的参与

因为我要根据ID排序,用户可以调整顺序,调整顺序时,我就互换Id的值,各位有没有高见?
snowy_howe 2002-11-29
  • 打赏
  • 举报
回复
update a set value =
(select substr(b.value,instr(b.value,'@')+1) value
from
(select c.id,(c.value||'@'||(select value from a where id = 2)) value
union
select d.id,(d.value||'@'||(select value from a where id = 1)) value
from a d where d.id = 2
union
select e.id,e.value from a e where e.id not in (1,2)
) b where b.id = a.id)
/

我知道上述语句有很多缺陷,比如他只能更改id =1和id =2 的内容,还得要求value里面没有特殊字符'@',还有要求id唯一,希望对你的思路有所帮助。

另外,我不禁要问,为什么非要一条sql语句,考验大家的sql能力?
jlandzpa 2002-11-29
  • 打赏
  • 举报
回复
没有看懂字段是怎么互换的?
wuxuan 2002-11-29
  • 打赏
  • 举报
回复
这个恐怕实现不了,至少需要两条SQL语句来实现.
use select ... into newtable,

然后关联两个表进行update.
360等软件会报安全未知软件,允许执行。 v1.1.2014.10更新 1、增加了表表之间的关系,通过外键关系的实体类访问更方便 2、增加了DAL的Insert函数。其它基本操作在后续版本中实现. 3、增加了部分表、字段的中文注释功能等; 4、修正了一部分错误; 5、增加一个简单的示例; 软件件适用: 1、根据SQL数据库生成实体文件类,类似于SqlMetal和动软代码生成器,但是相比较SqlMetal简化了较多的不常用的函数(我认为的),成员变量支持数据库字段注释,一个表对应一个文件,不像sqlmetal如果数据库表和字段多了,一下生成几千行一个文件。 2、数据库操作采用的LINQ TO SQL,小规模的应当问题不大吧,实现了INSERT,UPDATE,EXIST,GET方法。DELETE比较简单,自己写吧,写在LINQ里面,我觉得不划算。 3、相比较动软代码生成器,生成代码除系统组件(System命名空间)外,不调用任何第三方组件。 4、可以做B\S的,也可以做C\S的,生成的示例以B\S。 5、纯绿色软件,无需要安装,而且只有一个文件! 运行环境: 1、64位操作系统,32位的没有测试过。需要.net fromwork4.0支持,当然还要一个数据库才能生成。 2、数据库SQL2008Express版本以上,高于此版本应当当没有问题。低于此版本,我只能呵呵的,说不定可以…… 3、数据库配置方式引用了Discuz!NT的做法,没有写在Web.Config文件里面。稍作修改你可以完全写出其它类似的配置文件。可惜,Discuz!NT现在不做了!在此深表怀念! 4、建议每个表都要定义主键或唯一键,建立索引否则生成的LINQ语句将无法完成查询。 v1.1.2014.10程序校验码: MD5 :3F7BE759F0BE7E86236620D57D4472FE SHA1 :69BABBBA33D516FA1AD0068F44C145989103FB4B CRC32 :EAD371EA 如果需要交流,加群:点软件上面的QQ直接加哦! 本软件适用开发小软件吧,大软件不知道性能怎么样,欢迎高手指点

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧