0

我正在尝试更新客户数据库中的大量数据,但遇到了问题。我需要更新的列 (ntext) 包含常规文本/评论和 guid 的混合。

我只需要更新不包含 GUID 的单元格。

搜索确定某些文本是否是 SQL 中的唯一标识符/guid 的方法提供了多种解决方案,例如 som 正则表达式,但由于某种原因,并未从 select 语句中删除所有 guid 条目。(我从这里尝试了一些解决方案:How to check if a string is a uniqueidentifier?

有人能告诉我如何在 ntext 列中删除各种类似 guid 的条目吗?

任何帮助将非常感激。

编辑:

正确删除的 guid 示例:

4cfb5539-1656-4447-87f7-ea7c4ea94e96

示例 f guid 仍在列表中:

f5f284a0-c1c5-4c71-95b6-1eaa3ed38222

它们的长度相同,我看不到任何隐藏的字符或空格(尝试修剪没有区别)等。

编辑 2: 我使用的 SQL 语句: SELECT * from TABLE where VALUE like REPLACE(REPLACE('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA-F]'),' ','')

编辑 3:作为第一步删除任何空格的另一条语句

SELECT * from TABLE where REPLACE(Convert(nvarchar(max),VALUE), ' ', '') not like REPLACE('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA -F]')

4

1 回答 1

0
WHERE column like '%-%-%-%-%'

此过滤条件将查找“列”列中具有 guid 的所有行。

您还可以使用做一些更复杂的事情PATINDEX

于 2018-10-30T20:05:04.847 回答