我正在尝试对ORACLE SQL中的记录进行排序,以使所有包含短语“ VENT”的字符串都排在最前面,而其他字符串则按长度排序。
Select D1.MENU_TEXT
from IMPRESSIONS_DEF D1
order by IFF(instr(D1.MENU_TEXT, 'VENT'),1, LENGTH(D1.MENU_TEXT));
我尝试了此操作,但失败并显示“ IFF”无效标识符。我也试过
Select D1.MENU_TEXT, iff(D1.MENU_TEXT like '%VENT%', 1, 200) as k
from IMPRESSIONS_DEF D1
order by k + Length(D1.Menu_Text);
并说“缺少右括号”
使用case
表达式:
ORDER BY (CASE WHEN MENU_TEXT LIKE '%VENT%' THEN 1 ELSE 2 END),
LENGTH(D1.MENU_TEXT);
CASE
是标准的SQL。IIF()
是仅由几个数据库使用的定制SQL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句