我试图用撇号查询客户名称,但它看起来像一个特殊字符?

时间:2015-01-18 17:08:18

标签: sql-server

我正在使用Itzik Ben-Gan的Microsoft SQL Server 2012 T-SQL Fundamentals一书中的T-SQL数据库示例。 (http://tsql.solidq.com/books/tsqlfund2012/

我正在尝试查询客户名称O'Brien,Dave但它正在变成一个挑战。撇号不是我键盘上的撇号。它也不是我键盘上的`。我试着搜索角色地图,然后也空了。如何输入该字符?我怎么把它放在一个LIKE语句中?

由于

编辑:这是 NVARCHAR 字段的内容

'O’Brien, Dave'

我在键盘上的单引号中附上了整个名字。你可以看到它是不同的。我相信这是因为列类型是NVARCHAR。但我不知道如何查询这个?

此查询不会返回记录:

SELECT [custid]
  ,[companyname]
  ,[contactname]  
 FROM [TSQL2012_Jones].[Sales].[Customers] where contactname = N'O''Brien, Dave'

2 个答案:

答案 0 :(得分:1)

撇号是unicode字符%u2019。 你可以使用nchar()函数

获得该角色
...
where contactname = N'O' + nchar(0x2019) + 'Brien, Dave'

unicode escaping tool

答案 1 :(得分:0)

SELECT [custid]
  ,[companyname]
  ,[contactname]  
 FROM [TSQL2012_Jones].[Sales].[Customers] where contactname LIKE N'O_Brien, Dave'