sql - 在 select 语句中添加增量索引
问题描述
我有一个简单的 SELECT 语句:
SELECT WORKORDERID AS WOID FROM WORKORDER WO
这将返回我的 WO 表中的工单 ID 列表。
WOID
|AAB1|
|AAB2|
|AAB3|
但我想为每个工单 ID 添加索引号,如下所示:
SELECT WORKORDERID ||'-'||[index] AS WOID FROM WORKORDER WO
我想要的结果是:
WOID
|AAB1-1|
|AAB1-2|
|AAB1-3|
|AAB1-4|
|AAB2-1|
|AAB2-2|
|AAB2-3|
|AAB2-4|
|AAB3-1|
|AAB3-2|
|AAB3-3|
|AAB3-4|
我能想到的唯一方法是创建另一个索引为 1-4 的表,然后连接这两个表。我的问题是是否可以在一个 SELECT 语句中实现此结果而无需创建另一个表?
解决方案
干得好:
SQL> with test (workorderid) as
2 (select 'AAB1' from dual union all
3 select 'AAB2' from dual union all
4 select 'AAB3' from dual
5 )
6 select workorderid ||'-'|| column_value result
7 from test,
8 table(cast(multiset(select level from dual
9 connect by level <= 4
10 ) as sys.odcinumberlist))
11 order by 1;
RESULT
-------------------------
AAB1-1
AAB1-2
AAB1-3
AAB1-4
AAB2-1
AAB2-2
AAB2-3
AAB2-4
AAB3-1
AAB3-2
AAB3-3
AAB3-4
12 rows selected.
SQL>
推荐阅读
- php - 如何在购买的 linux 主机上使用 Xdebug
- java - 在 JSP 中使用 Java HttpSession 变量
- java - 智能 | 错误:无法创建 Java 虚拟机 | 错误:发生了致命异常。程序将会退出
- python - python win32com 批量阅读outlook邮件——打开的项目太多
- sql - SQL Server:对查询的每一行运行查询以在另一个表中查找匹配项
- java - 无法在 JRE 9 上运行 java 飞行记录器
- python - 如何将熊猫列转换为日期时间
- suricata - suricata 自定义规则来存储和提醒所有 pdf 文件
- python - 如何在 Pycharm 2018.2 的类方法声明中添加带有类型提示的文档?
- visual-studio - NUnitTestAdapter 2.1.1 中的测试名称 NUnit 2.6.4