求SQL语句!

VBDN 2004-03-26 04:29:43
表A中有一字段B,可能的值为0-999之间的整数。
操作1:100-300的数中最小的数:SELECT MIN(B) FROM A WHERE B BETWEEN 100 AND 300
操作2:700-900的数中最小的数:SELECT MIN(B) FROM A WHERE B BETWEEN 700 AND 900
操作3:300-700的数中最小的数:SELECT MIN(B) FROM A WHERE B BETWEEN 300 AND 700
求一数:
如果300-700之间的数存在,则得到操作3的结果;
如果300-700之间的数不存在,而100-300之间的数存在,则得到操作1的结果;
如果300-700和100-300之间的数都不存在,而存在700-900之间的数,则得到操作2的结果;
如果100-900之间的数都不存在,则什么也不返回。
既取数优先顺序为:操作3 --> 操作1 --> 操作2
(注:数据库为ACCESS97,前端开发环境为VB6,采用ADO技术,JET4.1引擎)。
...全文
22 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winternet 2004-03-29
  • 打赏
  • 举报
回复
up
playyuer 2004-03-29
  • 打赏
  • 举报
回复
select min(min_b) as b
from
(
SELECT MIN(B) as min_b,1 as f
from A WHERE B BETWEEN 300 AND 700
union
SELECT MIN(B),2
FROM A WHERE B BETWEEN 100 AND 300
union
SELECT MIN(B),3
FROM A WHERE B BETWEEN 700 AND 900
) a
where min_b is not null
victorycyz 2004-03-29
  • 打赏
  • 举报
回复

是了,realgz改进的就是我想做到的了。
realgz 2004-03-29
  • 打赏
  • 举报
回复
select top 1 min_b as b
from (

SELECT MIN(B) min_b from A WHERE B BETWEEN 300 AND 700
union all
SELECT MIN(B) FROM A WHERE B BETWEEN 100 AND 300
union all
SELECT MIN(B) FROM A WHERE B BETWEEN 700 AND 900

) a
where min_b is not null
realgz 2004-03-29
  • 打赏
  • 举报
回复
select top 1 min_b as b
from (

SELECT MIN(B) min_b from A WHERE B BETWEEN 300 AND 700
union all
SELECT MIN(B) FROM A WHERE B BETWEEN 100 AND 300
union all
SELECT MIN(B) FROM A WHERE B BETWEEN 700 AND 900

) a
realgz 2004-03-29
  • 打赏
  • 举报
回复
楼上的意思是:

select top 1 minb as b
from (

SELECT MIN(B) from A WHERE B BETWEEN 300 AND 700
union all
SELECT MIN(B) FROM A WHERE B BETWEEN 100 AND 300
union all
SELECT MIN(B) FROM A WHERE B BETWEEN 700 AND 900

) a


victorycyz 2004-03-26
  • 打赏
  • 举报
回复

select top 1 minb as b
from (
SELECT MIN(B) as minB,2 as r FROM A WHERE B BETWEEN 100 AND 300
union
SELECT MIN(B),3 FROM A WHERE B BETWEEN 700 AND 900
union
SELECT MIN(B),1 from A WHERE B BETWEEN 300 AND 700
) a
order by r

ccmoon 2004-03-26
  • 打赏
  • 举报
回复
IF EXISTS(
SELECT MIN(B)
FROM A
WHERE B BETWEEN 300 AND 700)

SELECT MIN(B)
FROM A
WHERE B BETWEEN 300 AND 700

ELSE
IF EXISTS(
SELECT MIN(B)
FROM A WHERE B
BETWEEN 100 AND 300
)

SELECT MIN(B)
FROM A WHERE B
BETWEEN 100 AND 300

ELSE
IF EXISTS(
SELECT MIN(B)
FROM A WHERE B
BETWEEN 700 AND 900
)

SELECT MIN(B)
FROM A WHERE B
BETWEEN 700 AND 900

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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