我有一个查询将返回一行。有什么方法可以找到我查询表的行索引时排序?获取查询的行号
我试过了rowid
,但是当我期待第7排时得到了#582。
如:
CategoryID Name
I9GDS720K4 CatA
LPQTOR25XR CatB
EOQ215FT5_ CatC
K2OCS31WTM CatD
JV5FIYY4XC CatE
--> C_L7761O2U CatF <-- I want this row (#5)
OU3XC6T19K CatG
L9YKCYAYMG CatH
XKWMQ7HREG CatI
我已经试过用的rowid意外的结果:
SELECT rowid FROM Categories WHERE CategoryID = 'C_L7761O2U ORDER BY Name
编辑:我也试过Ĵ库珀的建议(见下文),但行号刚是不对的。
using (var cmd = conn.CreateCommand()) {
cmd.CommandText = string.Format(@"SELECT (SELECT COUNT(*) FROM Recipes AS t2 WHERE t2.RecipeID <= t1.RecipeID) AS row_Num
FROM Recipes AS t1
WHERE RecipeID = 'FB3XSAXRWD'
ORDER BY Name";
cmd.Parameters.AddWithValue("@recipeId", id);
idx = Convert.ToInt32(cmd.ExecuteScalar());
为什么要修改我的查询'... WHERE t2.RecipeID <= t1.RecipeID'?在你的问题中,你所要求的行编号是关于'Name'而不是'RecipeID' - 这就是为什么你没有得到好的结果,使用'WHERE t2.Name <= t1.Name'而不是 – 2012-02-08 22:06:02