sql - 如何在我在 oracle 中的“IN”中输入结果数据时对结果数据进行排序
问题描述
我将搜索条件放在“IN”()中,并希望它按顺序显示,因为它是 oracle 中的“IN”。
'IN'() 中的数据是LOGIN_ID 字段的数据,它是唯一的,由字符串类型组成。
因此,例如,查询将如下所示,
select login_id from table where login_id in ('1234', 'abcd', '12cd')';
结果必须像这样显示,
=======
login_id
=======
'1234'
'abcd'
'12cd'
错误结果的例子是这样的,
=======
login_id
=======
'abcd'
'12cd'
'1234'
提前致谢!
解决方案
没有特定的 Oracle 特性。
您可以使用case
表达式:
select login_id
from table
where login_id in ('1234', 'abcd', '12cd')
order by case login_id
when '1234' then 1
when 'abcd' then 2
when '12cd' then 3
end
decode()
可以稍微缩短语法:
order by decode(login_id, '1234', 1, 'abcd', 2, '12cd', 3)
推荐阅读
- javascript - Angular 5 + Bootstrap 工具提示不起作用
- django - 从头开始创建 sqlite 时无法创建 django_migrations 表(数据库已锁定)错误
- python - 如何在 iPython 中使用 deepreload 进行自动重载
- python - 检测彩色圆圈
- python - Python ZeroDivisionError:在请求 NHL 数据并将其写入 CSV 时发生被零除
- python - 杀死父进程时运行子进程而不杀死
- vb.net - VB6 程序看不到 VB.Net COM DLL 的属性
- sharepoint - 浏览器无法显示 GULP SERVE SharePoint Workbench
- ios - 使用 LongPressGesture 重新排序后应用程序冻结
- python - 如何在键值对dict中获取键的值