string - 删除 PostgreSQL 表字符串中的子字符串

标签 string attributes substring postgresql-9.2

我在 PostgreSQL 数据库中有表“A”:

name     fullname
A         A,I,A
B         B,B,S,B
D         D,D,S,E,D
E         E,E,D,G,E
F         F,F,G,F
G         G,E,G,F,G,H,N,G

如何接收包含“正确名称”(全名)列的表“B”,其中每行中“名称”字段中没有匹配的子字符串:

name  correctname
A      I
B      S
D      S,E
E      D,G
F      G
G      E,F,H,N

数据示例:

CREATE TABLE test(name TEXT, fullname TEXT);

INSERT INTO test(name, fullname) VALUES('A','A,I,A');
INSERT INTO test(name, fullname) VALUES('B','B,B,S,B');
INSERT INTO test(name, fullname) VALUES('D','D,D,S,E,D');
INSERT INTO test(name, fullname) VALUES('E','E,E,D,G,E');
INSERT INTO test(name, fullname) VALUES('F','F,F,G,F');
INSERT INTO test(name, fullname) VALUES('G','G,E,G,F,G,H,N,G');

谢谢!

最佳答案

Solution :

SELECT 
name
,trim(
REGEXP_REPLACE(fullname,'(,|^)('||name||'(,|$))+',',','cg')
,',')
FROM data;

SELECT REPLACE(REPLACE(fullname, name||',', ''), ','||name, '') FROM test;

关于string - 删除 PostgreSQL 表字符串中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18400494/

相关文章:

regex - Scala:字符串模式匹配和拆分

c++ - C++ 字符串和字符串 vector 的 C 实现

javascript - 如何获取相同字符串之间的字符串javascript

linux - 如何在字符串中查找子字符串(或如何 grep 变量)?

R - 将数据帧写入/读取到文件,包括属性

java - 向现有对象添加新属性

php - 如何扩展一个表中的逗号分隔字段并将其复制到使用相同唯一 ID 的第二个表中的多个字段

mysql - 如何将两个单独的文本连接到一个 - 从字符串中选择 - IN MySQL

python - 属性错误 : 'module' object has no attribute 'printable'

javascript - 子字符串似乎不起作用