首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将行转换为列的Select

将行转换为列的Select
EN

Stack Overflow用户
提问于 2020-09-24 12:12:19
回答 2查看 35关注 0票数 0

我有两张桌子,一张有主记录,另一张有主表的详细信息。我需要如下所示的输出。

表1:

ID描述

1个再试样品

2再试样本1

表2:

B、D、B、D、B、C、B、B、S、B、B、

1

2

(3)暗中性值

4

5

6

我需要如下所示的输出

…/T1597-1996技术技术。。

…/T1397-1996技术技术。。

…/T1597-1998样品、技术等。。

试例1。。

请帮助我解决这个问题。

EN

回答 2

Stack Overflow用户

发布于 2020-09-24 13:04:36

可以使用PIVOT将行转换为列。MS SQL Server的正式文档

票数 0
EN

Stack Overflow用户

发布于 2020-09-24 13:18:24

请在此小提琴中为您的问题找到可能的解决方案。

你的想法会产生很多专栏。解决方案可以是使用Sample列进行枢轴操作。cte正在保存一个视图,以使用来自table1的示例描述。PIVOT是基于样本的。CASE WHEN用来带来零,而不是NULL

代码语言:javascript
复制
WITH cte AS (SELECT table2.ID, table1.Description, table2.Block, table2.DateBlock, table2.SampleCollected
FROM table2
JOIN table1
ON table2.SampleID = table1.ID)
SELECT Block, DateBlock,
  CASE WHEN [Sample] IS NULL THEN 0 ELSE [Sample] END AS Sample, 
  CASE WHEN [Sample1] IS NULL THEN 0 ELSE [Sample1] END AS Sample1
FROM (
SELECT *
FROM cte) AS sourcetable
PIVOT  
(  
SUM(SampleCollected)  
FOR Description IN ([Sample], [Sample1])  
) AS PivotTable
ORDER BY DateBlock, Block;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64046187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档