1

如何在 sybase 中仅选择 1 行而不使用rowcount?我没有特权进入set rowcountsybase。有没有办法只选择 1 行?

例如:

select * from table where name = 'jack' 

这将返回两行;如何在不使用的情况下从结果集中只选择一行set rowcount

4

3 回答 3

11

尝试查询:

SELECT TOP 1 * FROM mytable
WHERE name = 'jack'

正如您可能猜到的那样,这将选择 TOP 1 匹配结果。如果您想要更多(您不在这里),您可以使用任何数字(TOP 100TOP 1000等)。

更全面的例子可以在 w3schools 上找到:http: //www.w3schools.com/Sql/sql_top.asp

于 2011-01-22T03:58:48.743 回答
0

似乎有一个原因,为什么“WHERE name = 'jack'”的行数超过 1 行,看起来行不同。

但是,如果行没有不同,您可以尝试添加“distinct”:

SELECT DISTINCT * FROM TABLE WHERE name = 'jack'

或尝试使用“GROUP BY”语句,那么您应该明确键入所有列,例如:

SELECT name FROM TABLE WHERE name = 'jack' GROUP BY name

如果这不是您想要的,您可以在这里粘贴 2 行的外观吗?

于 2011-03-15T23:58:44.497 回答
0

如果您想要单个结果,请使用“GROUP BY”和“HAVING column = max(column)”。或者用 min() 替换 max()。除非最大值或最小值也不是唯一的,否则这应该有效。

于 2018-10-12T17:48:04.273 回答