急!急!急!急!急!

kewudemao 2003-01-22 05:06:25
表Test 如下:
fld1 fld2 fld3
a 0 4
a 1 2
a 2 5
b 0 1
b 1 6
c 0 2
c 1 5
c 2 4
c 3 7
....
如何写出一条sql,要求返回结果满足以下条件:
1, 按fld1排序
2, fld2 = 0时fld3值最小
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjhing 2003-01-22
  • 打赏
  • 举报
回复
select A.fld1,A.fld2,A.fld3
from test A ,
(select fld1,fld3 from test where fld2=0) B
where A.fld1=B.fld1
order by B.fld3 , A.fld1,A.fld2
kewudemao 2003-01-22
  • 打赏
  • 举报
回复
结果应该如下:
b 0 1
b 1 6
c 0 2
c 1 5
c 2 4
c 3 7
a 0 4
a 1 2
a 2 5

coo_key 2003-01-22
  • 打赏
  • 举报
回复
select * from test order by fld1,fld2
pengdali 2003-01-22
  • 打赏
  • 举报
回复
select * from 表 order by fld1,fld3
pengdali 2003-01-22
  • 打赏
  • 举报
回复
select fld1,fld2,fld3 from 表 order by fld1,fld3
hjhing 2003-01-22
  • 打赏
  • 举报
回复
你到底要按照什麼排序啊
你上面的例題
排序後是什麼樣子啊?
Sunny3141 2003-01-22
  • 打赏
  • 举报
回复
SELECT test.f1, test.f2, (case when test.f2 = 0 then MIN(test1.f3) else test1.f3) AS f3
FROM test LEFT OUTER JOIN
test test1 ON test.f1 = test1.f1
GROUP BY test.f1, test.f2, test1.f3
kewudemao 2003-01-22
  • 打赏
  • 举报
回复
不是,比如说fld1表示人,fld2表示该人的儿子号码,fld3表示该孩子的年纪,我要得到的结果是返回所有人的所有儿子,排序条件按照人的儿子0的年龄最小
hjhing 2003-01-22
  • 打赏
  • 举报
回复
fld2 = 0时fld3值最小 是什麼意思??

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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