如何使用特定类型的连字符查询 Azure SQL 服务器?
How to query Azure SQL server with specific type of hyphen?
我的数据库中有一些垃圾。我想知道我有多少。
正确的数据应该是这样的 foo-bar。可惜我还有foo-bar.
如果我 运行 两个查询我得到相同的数据。
select * from data
where field like '%-%';
select * from data
where field like '%-%';
两个查询的结果
foo-bar
foo-bar
如何只查询包含-而不包含-的数据?
azure web 客户端和 azure data studio 似乎都以某种方式转换这个字符,就好像只有一个字符一样。
这是两个不同的 Unicode 字符 https://www.codetable.net/decimal/45 versus https://www.codetable.net/decimal/65293
您有 2 个问题。一个是 Unicode 文字字符串需要一个 N
前缀来表示 Unicode。另一个是需要二进制排序规则转换来比较代码点而不是字符:
SELECT * FROM data
WHERE field LIKE N'%-%' COLLATE Latin1_General_BIN;
SELECT * FROM data
WHERE field LIKE N'%-%' COLLATE Latin1_General_BIN;
我的数据库中有一些垃圾。我想知道我有多少。 正确的数据应该是这样的 foo-bar。可惜我还有foo-bar.
如果我 运行 两个查询我得到相同的数据。
select * from data
where field like '%-%';
select * from data
where field like '%-%';
两个查询的结果
foo-bar
foo-bar
如何只查询包含-而不包含-的数据? azure web 客户端和 azure data studio 似乎都以某种方式转换这个字符,就好像只有一个字符一样。 这是两个不同的 Unicode 字符 https://www.codetable.net/decimal/45 versus https://www.codetable.net/decimal/65293
您有 2 个问题。一个是 Unicode 文字字符串需要一个 N
前缀来表示 Unicode。另一个是需要二进制排序规则转换来比较代码点而不是字符:
SELECT * FROM data
WHERE field LIKE N'%-%' COLLATE Latin1_General_BIN;
SELECT * FROM data
WHERE field LIKE N'%-%' COLLATE Latin1_General_BIN;