如何在不使用 rowcount 的情况下仅选择 sybase 中的 1 行
如何在不使用 rowcount
的情况下仅选择 sybase 中的 1 行?我没有在 sybase 中设置 rowcount
的权限。有没有办法只选择 1 行?
例如:
select * from table where name = 'jack'
这将返回两行;如何在不使用 set rowcount
的情况下仅从结果集中选择一行?
How do I select only 1 row in sybase without using rowcount
? I don't have the privilege to set rowcount
in sybase. Is there a way to select only 1 row?
For example:
select * from table where name = 'jack'
This returns two rows; how do I select only one row from the result set without using set rowcount
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试查询:
正如您可能猜到的,这会选择 TOP 1 匹配结果。如果您想要更多(这里不需要),您可以使用任何数字(
TOP 100
或TOP 1000
等)。可以在 w3schools 上找到更全面的示例: http://www.w3schools.com/Sql/sql_top .asp
Try the query:
As you might guess, this selects the TOP 1 matching results. If you wanted more (which you don't here) you could use any number (
TOP 100
orTOP 1000
, etc).A more comprehensive example can be found on w3schools: http://www.w3schools.com/Sql/sql_top.asp
似乎有一个原因,为什么“WHERE name = 'jack'”的行数超过 1 行,看起来行数不同。
但是,如果行没有不同,您可以尝试添加“distinct”:
或尝试使用“GROUP BY”语句,那么您应该显式键入所有列,例如:
如果这不是您想要的,您可以在此处粘贴如何2行看起来准确吗?
There seems to be a reason, why you're getting more than 1 row for "WHERE name = 'jack'", it looks as if the rows differ.
But if, the rows do not differ you can try adding "distinct":
or try with "GROUP BY" statement, then you should type explicitly all columns, eg.:
if this is not what you wanted, can you paste here how the 2 rows look exactly?
如果您想要单个结果,请使用“GROUP BY”和“HAVING column = max(column)”。或者用 min() 替换 max()。
除非最大值或最小值也不唯一,否则这应该有效。
If you want a single result, use 'GROUP BY' and 'HAVING column = max(column)'. Or replace max() with min().
This should work unless the max or min values are also not unique.