sql - Sql 查询-colum2 应该与下一个选定行的column1 匹配
问题描述
桌子
ID | col1 | coll2 |
---|---|---|
1 | 104A | 103A |
2 | 301A | 300A |
3 | 103A | 101A |
4 | 102A | 101A |
5 | 201A | 200A |
6 | 101A | 100A |
如果我在 where 条件下给出 col1 = 104A,输出应该像
ID1 | col1 | col2 |
---|---|---|
1 | 104A | 103A |
3 | 103A | 101A |
6 | 101A | 100A |
col2 应该与下一个选定的行 col1 匹配
解决方案
您必须Recursive
产生所需的输出
WITH cte AS (
SELECT *
FROM tbl t
WHERE t.col1 = '104A'
UNION ALL
SELECT t.*
FROM tbl t join cte c on t.col1 = c.coll2
)
SELECT * FROM cte
db<>fiddle中的演示
推荐阅读
- spring-boot - Spring boot 2.3.3.RELEASE 类路径未知警告
- kubernetes - Kubernetes Ingress 无法通过路径访问容器
- javascript - JEST - Dummy 想要模拟一个函数
- node.js - 提交表单时请求错误
- node.js - 无法在本地执行我的 firebase 功能
- sql-server - 我已在 SSRS VS2017 报告中添加了新字段,但数据未显示在预览中
- java - 如何在 Java 中获取程序的名称
- javascript - 如何将 PHP 变量插入 Laravel 刀片中的 Vue 计算函数?
- java - 具有引用作为参数的交换函数的冒泡排序,得到运行时错误
- android-studio - 为什么 ImageView 在 Android Studio 中显示通用图像而不是在设备上工作的请求图像?