【问题标题】:Select everything after a certain row in ordered SQL Table选择有序 SQL 表中某一行之后的所有内容
【发布时间】:2012-03-29 16:07:23
【问题描述】:

我有一个查询,它从各种表中选择一堆行并根据单个字段(水果)按字母顺序对它们进行排序,但我只想在达到某个值后开始选择。在 MS Access SQL 中是否有这样做的?

例如:

如果值为 Cherry,并且按字母顺序排列的表格如下所示:

**Fruit:**

Apple

Banana

Cherry

Damson

Orange

--

然后我只想选择 Cherry、Damson 和 Orange。 (对不起,我想不出一个以 E 开头的水果)

提前感谢您的帮助!

【问题讨论】:

  • 供将来参考 - 接骨木!
  • @Remou 我很困惑 - 接骨木浆果在名单上,还有柠檬、菠萝、椰子等!
  • @Bridge 我的沟通技巧很差。我对你的评论投了赞成票,然后我突然想到,为什么要停在 e 上?那里一定有一个完整的字母表,但没有。没有 x。
  • @Remou 看你有多努力 - kidsandfruit.org.au/cms/…

标签: sql ms-access select


【解决方案1】:

如果您在fruit table 中创建一个id 列,那么很容易获得某行之后的行列表。

你的桌子看起来像。

id          fruitname
----------- --------------------
1           Apple
2           Banana
3           Cherry
4           Damson
5           Orange

查询看起来像。

SELECT * FROM fruit f 
WHERE id>=(SELECT id FROM fruit WHERE fruitname='Cherry');

这将导致

id          fruitname
----------- --------------------
3           Cherry
4           Damson
5           Orange

【讨论】:

  • 你为什么要强迫别人按字母顺序输入他们的水果?
  • 如果id没有被订购怎么办?
【解决方案2】:

大多数运算符也可以应用于文本字段,因此在您的示例中,您可以使用:

SELECT  *
FROM    Fruit
WHERE   FruitName >= 'Cherry'

【讨论】:

  • its not a good Solution , in this case operators relies on alphabets , for example if you change Damsons 用 Banana 的地方,结果和以前一样!
猜你喜欢
  • 2019-05-04
  • 2016-12-22
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多