您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将列值设置为SQL查询结果中的列名

将列值设置为SQL查询结果中的列名

这是通过 数据透视表完成的 。按分组id,您CASE为要在列中捕获的每个值发出语句,并使用诸如MAX()聚合之类的方法消除空值并折叠成一行。

SELECT
  id,
  /* if col1 matches the name string of this CASE, return col2, otherwise return NULL */
  /* Then, the outer MAX() aggregate will eliminate all NULLs and collapse it down to one row per id */
  MAX(CASE WHEN (col1 = 'name') THEN col2 ELSE NULL END) AS name,
  MAX(CASE WHEN (col1 = 'name2') THEN col2 ELSE NULL END) AS name2,
  MAX(CASE WHEN (col1 = 'name3') THEN col2 ELSE NULL END) AS name3
FROM
  yourtable
GROUP BY id
ORDER BY id
SQLServer 2022/1/1 18:24:12 有534人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶