如何在不使用rowcount
的情况下在sybase中仅选择1行?我没有在sybase中set rowcount
的特权。有没有办法只选择1行?
例如:
select * from table where name = 'jack'
这会返回两行;如何在不使用set rowcount
的情况下从结果集中仅选择一行?
答案 0 :(得分:11)
尝试查询:
SELECT TOP 1 * FROM mytable
WHERE name = 'jack'
正如您可能猜到的,这会选择TOP 1匹配的结果。如果你想要更多(你不在这里),你可以使用任何数字(TOP 100
或TOP 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()。 除非最大值或最小值也不是唯一的,否则此方法应该起作用。