我有一个表,其中有两列 ID 和 NAME,其中 NAME 格式为 A-123-B-456。这种 A 与数字和 B 与数字的组合将是唯一的。
1 A-123-B-456
我想要两行这样的数据
1 A-123-B-456
2 B-456-A-123.
请帮忙转换成这种格式。
据我了解,这是您需要的视图,它将在两行上保持相同的 id;
CREATE VIEW Table1View AS
SELECT id, name FROM Table1
UNION
SELECT id,
SUBSTR(name, INSTR(name, '-', 1, 2) +1) || '-' ||
SUBSTR(name, 1, INSTR(name, '-', 1, 2) -1) name FROM Table1;
编辑:要进行连接并仅操作name
并保留其余部分,您可以使用 CTE 进行原始查询并对其进行 UNION ;
CREATE VIEW Table1View AS
WITH cte AS ( -- your original join goes here
SELECT Table1.id, Table1.name, Table2.extra
FROM Table1
JOIN Table2
ON Table1.id = Table2.id
)
SELECT id, name, extra FROM cte
UNION
SELECT id,
SUBSTR(name, INSTR(name, '-', 1, 2) +1) || '-' ||
SUBSTR(name, 1, INSTR(name, '-', 1, 2) -1) name, extra
FROM cte;