SQL Server查询中如何截断「Kind Regards」及其之后的所有字符串
SQL截断指定字符串及后续内容的修改方案
你可以结合LEFT函数和已经用到的PATINDEX实现需求,PATINDEX返回「Kind Regards」的起始位置,截取该位置之前的内容即可。为了避免文本中不存在「Kind Regards」时返回异常结果,建议增加兼容判断。
通用兼容所有SQL数据库的写法
以下代码使用标准CASE WHEN语法,适配所有支持PATINDEX的数据库环境,你只需将CallContent替换为CallLog表中存储对应文本的实际字段名即可:
SELECT CASE WHEN PATINDEX('%Kind Regards%', CallContent) > 0 THEN LEFT(CallContent, PATINDEX('%Kind Regards%', CallContent) - 1) ELSE CallContent END AS ProcessedContent FROM CallLog WHERE CallID = '01002429'
SQL Server专属精简写法
如果你使用的是SQL Server数据库,可以用IIF语法简化代码:
SELECT IIF( PATINDEX('%Kind Regards%', CallContent) > 0, LEFT(CallContent, PATINDEX('%Kind Regards%', CallContent) - 1), CallContent ) AS ProcessedContent FROM CallLog WHERE CallID = '01002429'
按照你的示例字符串测试,上述语句会直接返回你期望的结果:Good Morning, UPS to support the agent who will be doing standby weekend.
内容的提问来源于stack exchange,提问作者user108063
相关产品推荐
相关产品推荐

