高手帮我改改这条语句(急啊!!!!!!)

wangdeqing101 2005-07-15 12:07:38
select a.SongID - 1 from SongInfo a where
a.SongID - (select isnull(max(b.SID),0) from Song_ID b where b.SID < a.SongID) >=1
这条语句只能处理编号之间最多只隔了一位的情况,多了就没法全部显示了。
但我想得到的是数据库里所有的没有用过的编号,该怎么改。
...全文
177 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangdeqing101 2005-07-15
  • 打赏
  • 举报
回复
表结构如下
SonID Name
1001 AA
1003 BB
1010 CC
1015 DD
我要得到的结果是 1002,1004,1005..1009,1011....1014这些没用过的编号。
上面的语句只能实现1002,1009,1014这样的结果。
就是这样。
zjcxc 元老 2005-07-15
  • 打赏
  • 举报
回复
看不明白楼主的意思
631799 2005-07-15
  • 打赏
  • 举报
回复
举例说明啊
wangdeqing101 2005-07-15
  • 打赏
  • 举报
回复
wangdeqing101 2005-07-15
  • 打赏
  • 举报
回复
谢谢各位了。
kevin_wzh 2005-07-15
  • 打赏
  • 举报
回复
在Sql中有not in,不知道foxpro有没有。你可以试试。
wangdeqing101 2005-07-15
  • 打赏
  • 举报
回复
foxpro的数据库呀,还不能改数据库。并且数据库里有将近20000的记录呀。手选要死人了。
郁闷呀。
anglequhongmei 2005-07-15
  • 打赏
  • 举报
回复
select 出来得东西应该是数据库中有得,如果在数据库中没有得怎么得到呢?你是不是可以使用存储过程来实现啊。
blizzards 2005-07-15
  • 打赏
  • 举报
回复
写存储过程吧 要这样的表Song_ID作从表干吗, 你建个从表 里面ID为(1001.....1015)所有的 然后去比较 取出SongInfo中不存在的不就得了
wangdeqing101 2005-07-15
  • 打赏
  • 举报
回复
ID相同,Name相同。结构不同,SongInfo是主表,Song_ID是从表。
用两个表的ID比较,取出两张表中同时为空的编号,作为新加记录的编号。
blizzards 2005-07-15
  • 打赏
  • 举报
回复
你一开始写的语句中两个表之间有什么关系??
wangdeqing101 2005-07-15
  • 打赏
  • 举报
回复
up
wangdeqing101 2005-07-15
  • 打赏
  • 举报
回复
没人了。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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