首页 > 解决方案 > 返回子表

问题描述

我有下表:

|object|attribute1|attribute2|
|A     |true      |10        |
|B     |false     |15        |

我想要一个返回的查询:

|key      |value    |
|Name_A_1 |true     |
|Name_A_2 |10       |
|Name_B_1 |false    |
|Name_B_2 |15       |

所以基本上我想将对象的名称转换两次并将其附加到每个属性。

编辑:

正如蒂姆·比格莱森所说,我在这里遇到了类型问题。所以我愿意将所有类型转换为字符串。

标签: sqlsql-server

解决方案


我会这样做apply

select ky, val
from t cross apply
     (values ('Name_' + object + '_1', attribute1),
             ('Name_' + object + '_2', cast(attribute1 as varchar(255)))
     ) v(ky, val);

推荐阅读