在Sql中查找两个指定字符之间的字符串
本文关键字:字符 之间 字符串 两个 Sql 查找 | 更新日期: 2023-09-27 18:10:18
我有一个LinkedIn链接在我的数据库列这里我必须检查我的LinkedIn ID链接在链接插入两个或更多次。例:https://www.linkedin.com/profile/view?id=246925795& authType = name& authToken = sygl& trk = prof-sb-browse_map-name
我必须检查数据库中的id如果id重复两次或两次以上,则必须删除它,只留下一次。id = 246925795
请有人帮帮我
WITH Ids AS (
SELECT Id,
SUBSTRING(LinkedInLink, IdStart, IdEnd - IdStart) AS LinkedInId
FROM table
CROSS APPLY (
SELECT CHARINDEX('id=', LinkedInLink) AS IdStart
) AS CA1
CROSS APPLY (
SELECT CHARINDEX('&', LinkedInLink, IdStart) AS IdEnd
) AS CA2
)
,Duplicates AS (
SELECT LinkedInId
,MAX(id) AS LastDuplicateId
FROM Ids
GROUP BY LinkedInId
HAVING COUNT(*) > 1
)
DELETE FROM Table
WHERE Id IN (SELECT LastDuplicateId FROM Duplicates)
最好使用正则表达式进行这样的搜索操作。您可以创建一个实用程序类,它将在c#或VB中执行搜索+替换。Net,然后在SQl Server中导入该类(DLL)。在你的SQL查询中,你可以使用它作为一个函数。
参考:Link