sql-server - 使用子字符串/字符索引
问题描述
我必须从我们数据库中的“不干净”字段中提取文本。有人知道如何仅从以下示例中提取: “日常使用量太高”吗?
Order: T001.1<br />Rejection Reason: Meter Read Rejected: daily usage too high<br /><br /><a href='http://********?ProfileId=111111&AccountId=22222&ProductId=11111&MeterId=11111'>Link to page</a>
另一个例子:
<b>Order: </b>Notification<br /><b>Rejection Reason: </b>Meter Read Rejected: daily usage too high<br /><br /><br /><a href='http://********ProfileId=11111&AccountId=11111&ContractId=1111&WaterId=2222&MeterId=22222&MOT=true'>Meter page</a>
解决方案
我假设您想找到第 3 次出现:
和<br>
如果是这样,您可以使用Stuff
with cross apply
。这里cross apply
需要找到第 3 次出现:
SELECT
SUBSTRING(STUFF(texi, 1, CHARINDEX(':',texi,P3.pos), ''), 0,
CHARINDEX('<', STUFF(texi, 1, CHARINDEX(':',texi,P3.pos), ''))) as mystring
from test
cross apply (select (CHARINDEX(':',texi))) as P1(Pos)
cross apply (select (CHARINDEX(':',texi, P1.Pos+1))) as P2(Pos)
cross apply (select (CHARINDEX(':',texi, P2.Pos+1))) as P3(Pos)
推荐阅读
- spring-boot - 在 Spring Boot 应用程序类文件中添加 @ComponentScan 后,Junit 测试开始失败
- javascript - 在发送表单之前替换 javascript 中的冒号
- python - 从 Python 文件中获取函数作为可传递对象
- android - 是否可以在房间数据库中声明与另一个表 JOIN 的查询
- facebook-graph-api - 有什么方法可以访问那些使用 Graph API 在 facebook 页面上发帖的用户的个人资料名称和个人资料图片?
- flutter - 为什么在提供 OverflowBox 时,子容器会尊重父容器约束?
- firebase - Firestore - 如何构建用户朋友的帖子
- java - TypeScript 与 Java 中的接口
- php - 未找到 Laravel 8 错误:类“Database\Factories\Backend\AdminFactory”
- wcf - WCF - IsRequired 不会导致异常,即使客户端没有提供所需的值