У меня есть запрос, который возвращает одну строку. Есть ли способ найти индекс строки, которую я запрашиваю, когда таблица отсортирована?
Я пробовал rowid
, но получил #582, когда ожидал строку #7.
Например:
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
EDIT: Я также попробовал предложение J Cooper (ниже), но номера строк просто не подходят.
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());