问题如下:
select * from tfm_services t where t.service_name in ('QueryAdviceConfigService'
,'ResetAdviceListState'
,'CancelAdviceListState'
,'GetSMSCharLimit'
,'SendSMSService'
,'AddAdviceType'
,'ModAdviceType'
,'DelAdviceType'
,'DelAdviceTypeLang'
,'AddAdviceTypeLang');
查询出来的结果如何按照我传递参数的顺序显示出来,而不是按照service_name的首字母顺序排列
有一个办法,不过比较麻烦。
SQL如下:
select * from tfm_services t where t.service_name in (
'QueryAdviceConfigService'
,'ResetAdviceListState'
,'CancelAdviceListState'
,'GetSMSCharLimit'
,'SendSMSService'
,'AddAdviceType'
,'ModAdviceType'
,'DelAdviceType'
,'DelAdviceTypeLang'
,'AddAdviceTypeLang')
ORDER BY decode(t.service_name,'QueryAdviceConfigService',1,
'ResetAdviceListState',2,
'CancelAdviceListState',3,
'GetSMSCharLimit',4,
'SendSMSService',5
,'AddAdviceType',6
,'ModAdviceType',7
,'DelAdviceType',8
,'DelAdviceTypeLang',9);
分享到:
相关推荐
本篇文章将深入探讨Oracle查询优化的一些改写技巧,并结合实际案例进行讲解。 一、索引的合理利用 1. 唯一性索引:为经常用作查询条件的列创建唯一性索引,可以确保查询时快速定位到单条记录,例如主键和唯一约束...
- **IN**:使用 IN 可能会导致 ORACLE 尝试将其转换为表连接,如果转换失败,则会先执行子查询,再查询外层表。这增加了不必要的转换步骤。 - 示例:`SELECT * FROM T1 WHERE ID IN (SELECT ID FROM T2)`,改写为:...
- 游标允许逐行处理查询结果,常用于循环处理。 13. **动态SQL** - 动态SQL允许在运行时构建和执行SQL语句,如`EXECUTE IMMEDIATE 'SELECT * FROM table WHERE id = :1' INTO variable USING id_value;` 通过...
虽然在Oracle中,不同的表前缀和大小写写法不会影响查询结果或性能,但这会影响共享SQL区域的利用率。保持一致的命名和格式习惯,可以减少SQL解析次数,节省系统资源。 **2. WHERE子句中的条件顺序** 条件的顺序...
以上就是基于提供的文件内容整理的Oracle操作语句的详细介绍,涵盖了表结构描述、基础查询、数据选择与处理、字符串操作、去重查询、条件查询、区间与集合查询、日期查询、逻辑运算符、通配符查询和排序等方面的知识...
- `ORDER BY`子句:用于对查询结果进行排序,如`SELECT * FROM table_name ORDER BY column ASC/DESC;` 2. **聚合函数**: - `COUNT()`:计算行数,如`SELECT COUNT(*) FROM table_name;` - `SUM()`:计算数值列...
- **子查询优化**:考虑使用连接操作替换子查询,或利用 EXISTS 替换 IN。 3. **索引策略** - **复合索引**:对于多列查询,复合索引可以提高性能,但需注意索引列的选择顺序。 - **覆盖索引**:索引包含查询所...
此外,Oracle还支持集合操作,如并集(UNION),交集(INTERSECT)和差集(MINUS): ```sql -- 并集:返回两个查询结果的唯一行 SELECT column FROM table1 UNION SELECT column FROM table2; -- 交集:返回两个...
6. **排序(ORDER BY)**:用于对查询结果进行升序或降序排列,可结合ASC(升序)和DESC(降序)关键字使用。 7. **分页查询(LIMIT与OFFSET)**:在大量数据中,LIMIT用于限制返回的行数,OFFSET则用来跳过指定...
在Oracle数据库管理中,SQL(结构化查询语言)是核心工具,用于检索、操作和管理数据。本资料“oracle-非常有用的查询语句整理(一)”聚焦于一系列实用的查询技巧,旨在帮助用户更高效地操作Oracle数据库。以下是...
7. **集合操作符**:UNION、UNION ALL、INTERSECT和EXCEPT等操作符用于合并或筛选来自多个查询的结果集。例如,UNION合并两个查询的唯一行,而UNION ALL包括所有行,无论是否有重复。 掌握这些概念和技巧对于有效...
6. **分组与排序(GROUP BY和ORDER BY)**:GROUP BY用于按一个或多个列对结果进行分组,而ORDER BY则用于对结果集进行升序或降序排序。 7. **联接(JOIN)**:JOIN操作允许你从两个或更多表中合并数据。例如,`...
集合操作符如UNION、INTERSECT和MINUS也用于合并或对比多个查询结果集。 掌握这些概念和操作是Oracle数据库管理员和开发人员的基础,它们能帮助处理复杂的数据查询和分析,提高数据处理效率。通过实践和理解这些...
Oracle会尝试将IN操作符转换为多表连接查询,若转换失败,则需先执行子查询获取值集合,再对外层表进行查询。这一额外的转换步骤可能导致性能下降。对于复杂的查询,尤其是涉及分组和统计的场景,IN操作符的转换机制...
实际上,Oracle SQL还包括窗口函数、子查询、集合操作、游标、存储过程等高级特性。通过熟练掌握这些,你将能够有效地管理和分析Oracle数据库中的数据。 在提供的压缩包文件中,可能包含了一些具体的查询实例,你...
- 可以使用括号调整集合操作的顺序。 - 如果有`ORDER BY`,必须置于最后的SELECT语句之后。 - 结果集的列名和格式由第一个SELECT语句决定。 理解并熟练运用这些子查询和集合运算的技巧,能帮助你在Oracle数据库...
- **多行子查询**:返回一个值集合,可以与IN、NOT IN、ANY、ALL等操作符结合。 - **相关子查询**:主查询与子查询之间存在关联,子查询的结果依赖于主查询的行。 - **分组子查询**:在GROUP BY和HAVING子句中...