SQL如何筛选不含hr后缀的字段值并复制到空白目标表中
SQL实现筛选非hr后缀数据插入空白表方案
首先预设两个表的目标字段名为data_column,你可以替换为实际使用的表名、字段名即可。
通用写法(兼容绝大多数数据库)
使用LIKE匹配后缀,写法最直观:
INSERT INTO 表1 (data_column) SELECT data_column FROM 表2 WHERE data_column NOT LIKE '%hr';
也可以用RIGHT函数截取末尾两位判断:
INSERT INTO 表1 (data_column) SELECT data_column FROM 表2 WHERE RIGHT(data_column, 2) <> 'hr';
特殊场景适配
- 字段值存在末尾空格的处理
你给出的样例中poland-hr末尾带空格,直接判断会匹配失败,可以先修剪空格再筛选:
INSERT INTO 表1 (data_column) SELECT data_column FROM 表2 WHERE TRIM(data_column) NOT LIKE '%hr';
- PostgreSQL 专属更语义化写法
PostgreSQL 提供了专用的后缀判断函数:
INSERT INTO 表1 (data_column) SELECT data_column FROM 表2 WHERE NOT ENDS_WITH(data_column, 'hr');
- 需去重的场景
如果表2存在重复值,要保证表1数据唯一,可加DISTINCT关键字:
INSERT INTO 表1 (data_column) SELECT DISTINCT data_column FROM 表2 WHERE data_column NOT LIKE '%hr';
内容的提问来源于stack exchange,提问作者Hw3zs
相关产品推荐
相关产品推荐

