是否可以保持"IN"条件条款的顺序?
我在SO上发现了这个问题,但在他的例子中,OP已经有了一个排序的"IN"子句.
我的情况不同,'IN'子句是随机顺序的东西是这样的:
SELECT SomeField,OtherField
FROM TestResult
WHERE TestResult.SomeField IN (45,2,445,12,789)
Run Code Online (Sandbox Code Playgroud)
我想以(45,2,445,12,789)的顺序检索结果.我正在使用Oracle数据库.也许SQL中有一个属性我可以使用条件子句来指定保持子句的顺序.
例如我在表EMPLOYEE中:
(code, name)
(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)
如果您这样做:(从EMPLOYEE中选择*)您将得到:
(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)
如果您这样做:(从EMPLOYEE中选择*,您将获得(1,3,2,4)中的代码:
(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)
如何按IN子句中的CSV值顺序获取它,原样如何?
(1, 'Jimmy')
(3, 'Michelle')
(2, 'Albert')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的mysql
SELECT * FROM table WHERE id IN(3245,76,3466,998,12984,4466,931,50,728)
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以得到id在IN子句中的顺序排序的查询结果?
非常感谢
更新:我刚刚发现这里涉及的问题 尽管如此,我的IN子句确实包含多达5000个id,所以使用'FIELD'是最好的解决方案吗?
我需要一个SELECT带有IN子句的查询,以及Order by:
select *
from table
where column_id IN (5,64,2,8,7,1)
Run Code Online (Sandbox Code Playgroud)
此代码返回1, 2, 5, 7, 8, 64.
现在我需要按顺序返回相同的选择
输出需要是: 5, 64, 2, 8, 7, 1
在Mysql中,有字段选项,但SQL Server没有这样的字段选项.
我有一个SQL查询
SELECT column1,column2
FROM table1
WHERE column1 IN('q1','q2','q3')
Run Code Online (Sandbox Code Playgroud)
结果显示在顺序中:
q1
q2
q3
Run Code Online (Sandbox Code Playgroud)
如果我将查询更改为
SELECT column1,column2
FROM table1
WHERE column1 IN('q3','q1','q2')
Run Code Online (Sandbox Code Playgroud)
订单仍然相同.
如何在sql语句中实现这种排序?
救命!!
谢谢