SSMS 中是否存在没有匹配 WHERE 子句的多列 UNPIVOT 函数?

Is there a function for multiple column UNPIVOT without a matching WHERE clause in SSMS?

我有一个类似于下面的数据集:

ID Key Indicator 1 Indicator 1 Value Indicator 2 Indicator 2 Indicator 3 Indicator 3 Value etc...
ID### Apples TRUE Pears FALSE Oranges null etc...
ID### Oranges TRUE Pears FALSE APPLES null etc...
ID### PEARS TRUE APPLES FALSE ORANGES null etc...

我已经能够成功地将指标名称反透视到一个列中,但是我的困难是将指标值与指标名称适当匹配。是否有一个 WHERE 语句允许我在列名之间进行 grep 以取消透视或可以帮助我对此进行排序的类似操作?有问题的数据集来自一个 XML 集,可以解释异常。

在 SQL 服务器中我只使用 APPLY

SELECT
  your_table.id_key,
  exploded.indicator,
  exploded.val
FROM
  your_table
CROSS APPLY
(
  VALUES
    (indicator_1, indicator_1_value),
    (indicator_2, indicator_2_value),
    ...
    (indicator_n, indicator_n_value)
)
  AS exploded(indicator, val)
WHERE
  exploded.indicator IS NOT NULL

其他 DBMS 具有类似的功能,例如横向连接。