sql - 将一个表中的列值连接到另一个表的新列中的行
问题描述
我正在尝试在 SQL Server 2008 中编写一个 SQL 查询,它将单个查询中的列值匹配到表上的新列中,其中列标题存储为行值。
我有两个疑问:
钥匙 | 价值 |
---|---|
COL01 | 25 |
COL02 | 71 |
COL03 | 13 |
表 1 的 KEY 列下列出的相同行值是表 2 的列名。
COL01 | COL02 | COL03 |
---|---|---|
XX | YY | Z Z |
期望的结果:
钥匙 | 价值 | NEW_COL |
---|---|---|
COL01 | 25 | XX |
COL02 | 71 | YY |
COL03 | 13 | Z Z |
解决方案
嗯。. . 我建议取消旋转并加入:
select t1.*, t2.val
from table2 t2 cross join
(values (t2.col01, 'col01'), (t2.col02, 'col02'), (t2.col03, 'col03')
) v(val, which) join
table1 t1
on t2.which = t1.key;
推荐阅读
- javascript - 均匀分配人员到事件
- reactjs - 将文本与 React Native 对齐的问题
- flutter - 我正在使用 youtube_player_iframe 2.2.2。我想为此添加一些功能。可能吗?
- adsense - AdSense 广告刷新
- python - CSS 没有加载到 Django 管理面板应用程序中?
- odoo - RecursionError:最大递归深度超过了odoo 12
- node.js - 有没有办法将音频下载从本地磁盘传递到 React.js 中的页面
- node.js - Typescript 中的继承或注入
- java - Java - 使用音乐播放控制按钮
- angular - 在没有 Angular 附加库的情况下使用 IdentityServer4/5