如何在sql中拆分每行中的字符值并创建新列

qoefvg9y  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(306)

我有一个字段,每行由不同的字母串组成:

BAAAAZZAFBF
AAAAAZZAFBA
FAZZZAA

我想根据每个字符将这些行输出到列中(一列是b,下一列是a,等等)。
我现在有这个查询,但只将行转换为列,而不将它们分开。

SELECT Primary Key,
       MAX(CASE WHEN DNB_MATCH_GRADE = 'B__________' THEN 1 END) B_Name,
       MAX(CASE WHEN DNB_MATCH_GRADE = 'A__________' THEN 2 END) A_Name,
       MAX(CASE WHEN DNB_MATCH_GRADE = 'F_______' THEN 3 END) F_name
  FROM TABLE
 GROUP BY Primary key

输出表如下所示,每个部分对应于表中的一个字段:
主键| a | b | d | z | f

kiz8lqtg

kiz8lqtg1#

这就是你想要的吗?

SELECT Primary Key,
       MAX(CASE WHEN DNB_MATCH_GRADE = 'B__________' THEN DNB_MATCH_GRADE END) as B_Name,
       MAX(CASE WHEN DNB_MATCH_GRADE = 'A__________' THEN DNB_MATCH_GRADE END) as A_Name,
       MAX(CASE WHEN DNB_MATCH_GRADE = 'F_______' THEN DNB_MATCH_GRADE END) as F_name
FROM TABLE
GROUP BY Primary key

相关问题