You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数据库中分离行的标签与数据合并到同一行?

问题描述

数据库里数据和标签分开存储在不同行,现在需要编写SQL查询把标签与对应数据展示在同一行。规则如下:

  • AssignmentName字段包含CiscoLicenseLabel的行,对应标签值
  • AssignmentName字段包含CiscoLicenseEnabled的行,对应匹配的数据值

当前使用的查询语句:

SELECT 
    cps.CustomPollerAssignmentID, cps.Status, RowID, cpa.AssignmentName
FROM
    Orion.NPM.CustomPollerStatus cps
INNER JOIN
    Orion.NPM.CustomPollerAssignment AS [cpa] ON cpa.custompollerassignmentID = cps.CustomPollerAssignmentID
WHERE
    cpa.AssignmentName LIKE 'CiscoLicense%'
ORDER BY
    RowID, Status

试过分区行号关联的方法但没成功,想实现将对应标签与数据合并到同一行。

解决方案

可以用自连接的方式实现,把标签行和数据行按RowID关联,就能将对应内容合并到同一行:

SELECT
    label.RowID,
    label.Status AS 标签状态,
    label.CustomPollerAssignmentID AS 标签任务ID,
    label.AssignmentName AS 标签名称,
    data.Status AS 数据状态,
    data.CustomPollerAssignmentID AS 数据任务ID,
    data.AssignmentName AS 数据名称
FROM
    (
        SELECT 
            cps.CustomPollerAssignmentID, cps.Status, cps.RowID, cpa.AssignmentName
        FROM Orion.NPM.CustomPollerStatus cps
        INNER JOIN Orion.NPM.CustomPollerAssignment cpa 
            ON cpa.custompollerassignmentID = cps.CustomPollerAssignmentID
        WHERE cpa.AssignmentName LIKE '%CiscoLicenseLabel%'
    ) AS label
INNER JOIN
    (
        SELECT 
            cps.CustomPollerAssignmentID, cps.Status, cps.RowID, cpa.AssignmentName
        FROM Orion.NPM.CustomPollerStatus cps
        INNER JOIN Orion.NPM.CustomPollerAssignment cpa 
            ON cpa.custompollerassignmentID = cps.CustomPollerAssignmentID
        WHERE cpa.AssignmentName LIKE '%CiscoLicenseEnabled%'
    ) AS data
ON label.RowID = data.RowID
ORDER BY label.RowID;

思路说明

  1. 拆分两个子查询:
    • label子查询专门筛选所有标签行(AssignmentName包含CiscoLicenseLabel的记录)
    • data子查询专门筛选所有数据行(AssignmentName包含CiscoLicenseEnabled的记录)
  2. 用RowID作为关联条件,将两组数据拼接,同一个RowID对应的标签和数据就会出现在同一行
  3. 可按需调整展示字段,给字段设置易懂的别名,让结果更直观

如果RowID无法完全确保标签与数据的对应关系,可以结合业务场景,增加其他关联字段(比如设备ID)来提升匹配准确性。

内容的提问来源于stack exchange,提问作者wetin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 23:35:22