无法得到我眼前的结果?

Alb*_*son 1 sql t-sql sql-server

我有一个数据库,它使用VARBINARY(18)类型的字段来存储主键

A sample PK: 0x001B7431C732005C4785A14F168EBD1FC5E4
Run Code Online (Sandbox Code Playgroud)

当我尝试运行一个简单的查询,如

SELECT * FROM mytable WHERE ID = '0x001B7431C732005C4785A14F168EBD1FC5E4'
Run Code Online (Sandbox Code Playgroud)

即使我能在mytable中看到PK,我也没有得到任何结果.

有谁知道为什么会发生这种情况以及如何解决这个问题?我正在使用SQL 2008 R2.

谢谢!

Mar*_*ith 5

不要使用引号.

这表示字符串文字而不是二进制文字.它的作用是使用默认排序规则的代码页将所有二进制列数据隐式转换为字符串.这不符合.

以下是您所需要的一切.

SELECT * 
FROM mytable 
WHERE ID = 0x001B7431C732005C4785A14F168EBD1FC5E4
Run Code Online (Sandbox Code Playgroud)