首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据in子句-Oracle中相同的值顺序从数据库中选择值

根据in子句-Oracle中相同的值顺序从数据库中选择值
EN

Stack Overflow用户
提问于 2018-12-07 14:18:43
回答 2查看 686关注 0票数 1

我有一个查询来获取和计算相应的值。要获取我在in子句中传递的值,如下所示,

代码语言:javascript
复制
SELECT *
FROM SQ_HANDLING_TIME_T
WHERE QSC_CODE   = '001'
AND BU_TYPE_RULE = 'STO'
AND DEV_TYPE     = 'NC'
AND FIELD_NAME IN('NC_LQ2_PER_PALLET','NC_LQ2_PER_BOX','NC_LQ2_PER_APPLIANCES');

但它给了我的记录,如每盒,每个托盘,然后每个设备的数据。它的顺序与从句中的顺序不同。在Oracle中,是否有任何方法可以获得与in子句相同顺序的记录。

桑杰萨

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-07 18:28:49

当然;应用ORDER BY子句,它注意WHERE子句中的顺序。下面是一个基于Scott模式的示例:

代码语言:javascript
复制
SQL> select deptno, ename, job, sal
  2  from emp
  3  where job in ('MANAGER', 'CLERK', 'SALESMAN')
  4  order by decode(job, 'MANAGER', 1, 'CLERK', 2, 'SALESMAN', 3);

    DEPTNO ENAME      JOB              SAL
---------- ---------- --------- ----------
        10 CLARK      MANAGER         2450
        20 JONES      MANAGER         2975
        30 BLAKE      MANAGER         2850
        30 JAMES      CLERK            950
        20 SMITH      CLERK            800
        10 MILLER     CLERK           1300
        30 TURNER     SALESMAN        1500
        30 WARD       SALESMAN        1250
        30 ALLEN      SALESMAN        1600
        30 MARTIN     SALESMAN        1250

10 rows selected.

SQL>

在你的情况下,那就是

代码语言:javascript
复制
...
ORDER BY DECODE(field_name, 'NC_LQ2_PER_PALLET', 1,
                            'NC_LQ2_PER_BOX', 2,
                            'NC_LQ2_PER_APPLIANCES', 3)
票数 3
EN

Stack Overflow用户

发布于 2018-12-07 18:32:05

代码语言:javascript
复制
SELECT *
FROM SQ_HANDLING_TIME_T
WHERE QSC_CODE     = '001'
  AND BU_TYPE_RULE = 'STO'
  AND DEV_TYPE     = 'NC'
  AND FIELD_NAME IN ('NC_LQ2_PER_PALLET','NC_LQ2_PER_BOX', 
                     'NC_LQ2_PER_APPLIANCES');
ORDER BY
    CASE FIELD_NAME
        WHEN 'NC_LQ2_PER_PALLET'     THEN 1
        WHEN 'NC_LQ2_PER_BOX'        THEN 2
        WHEN 'NC_LQ2_PER_APPLIANCES' THEN 3
    END;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53671379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档