如何在 sybase 中仅选择 1 行而不使用rowcount
?我没有特权进入set rowcount
sybase。有没有办法只选择 1 行?
例如:
select * from table where name = 'jack'
这将返回两行;如何在不使用的情况下从结果集中只选择一行set rowcount
?
尝试查询:
SELECT TOP 1 * FROM mytable
WHERE name = 'jack'
正如您可能猜到的那样,这将选择 TOP 1 匹配结果。如果您想要更多(您不在这里),您可以使用任何数字(TOP 100
或TOP 1000
等)。
更全面的例子可以在 w3schools 上找到:http: //www.w3schools.com/Sql/sql_top.asp
似乎有一个原因,为什么“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 行的外观吗?
如果您想要单个结果,请使用“GROUP BY”和“HAVING column = max(column)”。或者用 min() 替换 max()。除非最大值或最小值也不是唯一的,否则这应该有效。