【问题标题】:Remove all after certain character/phrase SQLITE删除某些字符/短语 SQLITE 之后的所有内容
【发布时间】:2021-08-09 23:36:21
【问题描述】:
SQLITE 中的表,想用一种简单的方法删除 Company_name_ 列中一组短语/字符右侧的所有内容,在本例中为“LLC”之后的所有内容:
| Company_name_ |
| Example LLC $42 |
| Example llc,klp |
| Example LLc jim |
变成
| Company_name_ |
| Example LLC |
| Example llc |
| Example LLc |
尝试设置 Charindex 和 Substr,但出现语法错误。
谢谢
【问题讨论】:
标签:
string
sqlite
substring
case
instr
【解决方案1】:
您可以使用字符串函数 SUBSTR() 和 INSTR() 来做到这一点。
如果您想要 SELECT 查询,请使用带有运算符 LIKE 的 CASE 表达式来检查列值是否包含 'LLC':
SELECT CASE
WHEN Company_name_ LIKE '%LLC%'
THEN SUBSTR(
Company_name_,
1,
INSTR(UPPER(Company_name_), 'LLC') + LENGTH('LLC') - 1
)
ELSE Company_name_
END Company_name_
FROM tablename;
如果要更新表格:
UPDATE tablename
SET Company_name_ = SUBSTR(
Company_name_,
1,
INSTR(UPPER(Company_name_), 'LLC') + LENGTH('LLC') - 1
)
WHERE Company_name_ LIKE '%LLC%';
请参阅demo。