如何拆分每行中的字符值并在 SQL 中创建新列
How to split character values in each row and create new columns in SQL
我有一个字段,每行包含不同的字符串:
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
输出 table 看起来像这样,每个部分对应于 table 中的一个字段:
主键 |一个 |乙 | D | Z | F
这是你想要的吗?
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
我有一个字段,每行包含不同的字符串:
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
输出 table 看起来像这样,每个部分对应于 table 中的一个字段:
主键 |一个 |乙 | D | Z | F
这是你想要的吗?
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