求一SQL 语句

xiaogang_1 2014-10-16 03:36:10
假如表中有两个字段, index和type,type有a,b,c三种状态,要求读出第一次在type字段中出现a状态以后的所有数据,包括a状态所在的行

例如:

index type
1 b
2 b
3 c
4 a
5 b
6 a
7 b

读出来的结果为
4 a
5 b
6 a
7 b
...全文
66 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hleb231 2014-10-16
  • 打赏
  • 举报
回复
引用 4 楼 xiaogang_1 的回复:
[quote=引用 1 楼 Tiger_Zhao 的回复:]
SELECT *
  FROM table1
 WHERE [index] >= (SELECT MIN([index]) FROM table1 ta WHERE type='a')
ta 是什么意思?[/quote ta 表别名呀,用来区分名字一样的表,一般取名 A表,B表,C表。 不过你这种情况不是必须要用别名的。
Tiger_Zhao 2014-10-16
  • 打赏
  • 举报
回复
一开始以为有分组之类的字段,所以随手写下的一个别名,准备和选取记录的表关联条件。
完全多余的。
xiaogang_1 2014-10-16
  • 打赏
  • 举报
回复
引用 1 楼 Tiger_Zhao 的回复:
SELECT *
  FROM table1
 WHERE [index] >= (SELECT MIN([index]) FROM table1 ta WHERE type='a')
ta 是什么意思?
xiaodongni 2014-10-16
  • 打赏
  • 举报
回复
select * from tablename where index>= (select min(index) from tablename where type='a')
luffywang 2014-10-16
  • 打赏
  • 举报
回复
select * from tablename where index >=(select top 1 index from tablename where type='a' order by index)
Tiger_Zhao 2014-10-16
  • 打赏
  • 举报
回复
SELECT *
FROM table1
WHERE [index] >= (SELECT MIN([index]) FROM table1 ta WHERE type='a')

22,199

社区成员

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

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