求教sqlite中的2条sql语句

sfengnet 2009-02-11 10:58:08
A表中

字段1 字段2
a
b
c
d
.
.
.

第一条: (update ...)我想让字段2里按顺序出现 1,2,3....n
变成:

字段1 字段2
a 1
b 2
c 3
d 4
... ...

注:用一个sql语句实现,不能改变表结构(不能使用自动递增字段)


第二条: (insert ...)如果我删除了某条记录,再次插入记录时,字段2中能自动补全我刚刚删除的某条记录的字段2的值吗?
比如我删除了第二条记录
字段1 字段2
a 1
c 3
d 4
... ...
当我再次插入一条记录时,自动变成
字段1 字段2
a 1
c 3
d 4
... ...
xx 2 <---------我添加的记录(事先我并不知道是字段2的值为2的记录被删除了)


注:用一个sql语句实现
...全文
260 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2009-02-12
  • 打赏
  • 举报
回复
呵呵,刚发现的,文档中似乎没有说明
WWWWA 2009-02-12
  • 打赏
  • 举报
回复
1、
select *,rowid from A
试试
wwwwb 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sfengnet 的回复:]
第二个sql语句可以取出字段2中最小的值了,太神奇了

但是第一个sql语句似乎不是我想要的结果啊
[/Quote]
呵呵,已经说过,第一个sql语句运行是有条件的,

如果字段1是有顺序且是唯一的

SQLITE没有SQL SERVER的IDENTITY函数,不支持SP,不支持如MYSQL中的
变量累计,没有SQL ANYWHERE 的NUMBER函数及分析函数。

你又不用自增字段,估计比较困难。
sfengnet 2009-02-12
  • 打赏
  • 举报
回复
大哥哥,我真的爱死你了,结贴!
sfengnet 2009-02-11
  • 打赏
  • 举报
回复
第二个sql语句可以取出字段2中最小的值了,太神奇了

但是第一个sql语句似乎不是我想要的结果啊
WWWWA 2009-02-11
  • 打赏
  • 举报
回复
1、
如果字段1是有顺序且是唯一的内容,可以用SQL语句解决
SELECT A1.字段1,COUNT(*) FROM A A1 LEFT JOIN A A2 ON A.字段1>=A2.字段1
2、
SELECT min(字段2)+1 FROM A a1
left join a a2 on a1.字段2=a2.字段2 +1
WHERE a2.字段1 is null
sfengnet 2009-02-11
  • 打赏
  • 举报
回复
sqlite的触发器小弟没有接触过,楼上的大哥哥能给出点例子吗?

字段1就是有序的,而且是唯一的,大哥哥能给出对应的sql语句吗?
wwwwb 2009-02-11
  • 打赏
  • 举报
回复
1、用临时表的方法最简单,
如果字段1是有顺序且是唯一的内容,可以用SQL语句解决
2、
在触发器中判断缺少的字段2内容

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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