【发布时间】:2013-03-29 04:44:17
【问题描述】:
我需要帮助创建交叉表。 有人告诉我可以使用 Merge 语句来完成,但我对此感到很困惑。 也许有人有使用合并语句创建交叉表的经验。
这是初始表: (初始表可以有很多人,结果表可以有很多列)
person text
person_1 some_text_1
person_1 some_text_2
person_1 some_text_3
person_1 some_text_4
person_1 some_text_5
person_2 some_text_6
person_2 some_text_7
person_2 some_text_8
person_2 some_text_9
结果是我需要的表:
person_1 person_2
some_text_1 some_text_6
some_text_2 some_text_7
some_text_3 some_text_8
some_text_4 some_text_9
some_text_5
UPD:我知道它可以通过枢轴或其他方式完成。 问题是如何使用 MERGE 来做到这一点。
【问题讨论】:
-
为什么你已经尝试过让你感到困惑?你能发布你的代码和你不理解的解释吗?
-
我不认为 MERGE 语句是你想要使用的。这是根据条件执行有条件的插入/更新。
-
>为什么你的尝试已经让你感到困惑?我不知道应该使用什么键来链接人员和报告。
MERGE INTO REPORT USING (SELECT PERSON, TEXT FROM PERSONS) ON (--on what condition?) WHEN NOT MATCHED THEN INSERT (--how can I define only one column to insert?) VALUES (TEXT);