sql - SQL 为 A 列第 1 行选择 vale,然后从 B 列第 1 行选择值,然后 A 列第 2 行...全部在单独的行上
问题描述
我已经执行了一个查询来创建成对的事件组合,并将该对作为单行。有关输出,请参见下面的链接。第 1 列是第一个事件的 ID,第 2 列是配对事件的 ID。
我需要获取此输出,然后将其传输到只有一列的行。所以基本上,第 1 行和第 2 行将是一对,第 3 行和第 4 行将是一对,等等。下面第二个链接中所需输出的快照。
在 SSMS 工作。
谢谢!
解决方案
看起来您的原始订单是 by (fid, sid)
。
CROSS APPLY
下面基本上为每个原始行生成两行。因此,我们通过添加(fid, sid)
列来保留原始顺序,并确保列中的值排在fid
第一位,而列中的值排在第二位。sid
SortOrder
SELECT
CA.ID
FROM
YourTable
CROSS APPLY
(VALUES (fid, 1), (sid, 2)) CA(ID, SortOrder)
ORDER BY
YourTable.fid,
YourTable.sid,
CA.SortOrder;
推荐阅读
- typescript - 断言 TypeScript 条件返回类型
- ios - 在快速远程通知中,有没有办法在应用程序被杀死时在横幅中显示与从服务器收到的消息不同的消息?
- c# - 画布内的 ScaleTransform:以鼠标指针为中心导致问题
- python-3.x - 当我启动一个蛇程序时我的屏幕冻结
- javascript - 使用 ASP Classic/Javascript 导出到 Excel
- fiware - httpCustom 有效负载中没有替换
- django - 将 django.rest_framework.serializers.ModelSerializer 扩展到模型属性字段?
- database - 为什么 RDS 突发平衡看似随机,从不低于 99%,并且与系统流量无关?
- forms - 引导程序中有用的焦点覆盖
- react-native - 如何在 react-native 的 Image 组件中显示本地 SVG 图像