如何在不使用rowcount的情况下仅选择sybase中的1行

时间:2011-01-22 03:49:07

标签: sql sybase rowcount

如何在不使用rowcount的情况下在sybase中仅选择1行?我没有在sybase中set rowcount的特权。有没有办法只选择1行?

例如:

select * from table where name = 'jack' 

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

3 个答案:

答案 0 :(得分:11)

尝试查询:

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

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

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

答案 1 :(得分: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 :(得分:0)

如果需要单个结果,请使用“ GROUP BY”和“ HAVING column = max(column)”。或将min()替换为min()。 除非最大值或最小值也不是唯一的,否则此方法应该起作用。