将 table 中的值转换为 headers 列
Turn values from table into column headers
我正在尝试从 table 的行中获取值并将它们转换为 headers 列。例如,我的 table 目前看起来像这样:
_id question_id category
----- ------------- ----------
1 767 back
1 768 dev
2 768 dev
我希望它看起来像这样:
_id 767 768
----- -------- -----
1 back dev
2 (null) dev
我在此处使用 CASE/WHEN
找到了解决方案,但在尝试实施这些解决方案时出现错误。我的代码如下。在这种情况下,我在第 6 行末尾收到 ORA-00923: FROM keyword not found where expected
错误。我该如何解决这个问题?
SELECT
msr._id,
ans.question_id,
ans.category,
CASE ans.question_id WHEN '767' THEN ans.category END '767',
CASE ans.question_id WHEN '768' THEN ans.category END '768'
FROM table1 t1
LEFT OUTER JOIN table2 t2
ON t1._id = t2._id
WHERE t2.question_id in (767,768) AND t2.assigned_to not in ('Smith, John')
AND t1.request_type_id in (288,289) and t1.status_id not in (0, 11);
' 是字符串文字的分隔符。 " 用于列名。因此:
CASE ans.question_id WHEN '767' THEN ans.category END "767",
CASE ans.question_id WHEN '768' THEN ans.category END "768"
我正在尝试从 table 的行中获取值并将它们转换为 headers 列。例如,我的 table 目前看起来像这样:
_id question_id category
----- ------------- ----------
1 767 back
1 768 dev
2 768 dev
我希望它看起来像这样:
_id 767 768
----- -------- -----
1 back dev
2 (null) dev
我在此处使用 CASE/WHEN
找到了解决方案,但在尝试实施这些解决方案时出现错误。我的代码如下。在这种情况下,我在第 6 行末尾收到 ORA-00923: FROM keyword not found where expected
错误。我该如何解决这个问题?
SELECT
msr._id,
ans.question_id,
ans.category,
CASE ans.question_id WHEN '767' THEN ans.category END '767',
CASE ans.question_id WHEN '768' THEN ans.category END '768'
FROM table1 t1
LEFT OUTER JOIN table2 t2
ON t1._id = t2._id
WHERE t2.question_id in (767,768) AND t2.assigned_to not in ('Smith, John')
AND t1.request_type_id in (288,289) and t1.status_id not in (0, 11);
' 是字符串文字的分隔符。 " 用于列名。因此:
CASE ans.question_id WHEN '767' THEN ans.category END "767",
CASE ans.question_id WHEN '768' THEN ans.category END "768"