【发布时间】:2015-04-11 13:31:34
【问题描述】:
我对 ORDER BY CASE 有一个令人费解的问题:
我编写了一个带有 VARCHAR(50) 参数“sortBy”的测试过程:
BEGIN
SELECT N.Num_Of_Users, N.Noun_Created FROM NOUNS N
ORDER BY CASE sortBy
WHEN 'numReviews' THEN Num_Of_Users
ELSE Noun_Created END DESC;
END
如果我用除 varchar 'numReviews' 以外的任何东西调用这个 proc,它会按预期按 Noun_Created 排序,但如果我用 'numReviews' 调用它,它根本不会排序。
对此感到困惑,我将排序硬编码为:
BEGIN
SELECT N.Num_Of_Users, N.Noun_Created FROM NOUNS N
ORDER BY Num_Of_Users;
END
而且排序正确。
【问题讨论】:
标签: mysql sql sorting sql-order-by case