我有一個查詢將返回一行。有什麼方法可以找到我查詢表的行索引時排序?獲取查詢的行號
我試過了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