以下是该方案: 我有一个SQL select语句,它返回一个二进制数据对象作为字符串。这是无法改变的,它超出了我可以修改的范围。 例如,它将返回'1628258DB0DD2F4D9D6BC0BF91D78652'。
如果我在查询中手动在此字符串前面添加0x,我将检索我正在寻找的结果,例如: SELECT a,b FROM mytable WHERE uuid = 0x1628258DB0DD2F4D9D6BC0BF91D78652 我的结果集是正确的。
但是,我需要找到一个Microsoft SQL Server 2008兼容的方法来以编程方式执行此操作。简单地将0x连接到字符串变量不起作用。很明显,但我确实尝试过。
请帮助:) 谢谢 标记
答案 0 :(得分:3)
我对您的问题的理解是,您有uuid
列,binary
。
您正尝试在uuid
中选择具有特定值的行,但您尝试使用这样的字符串:
SELECT a, b FROM mytable WHERE uuid = '0x1628258DB0DD2F4D9D6BC0BF91D78652'
哪个不起作用。如果这是正确的,您可以使用样式为2的CONVERT
函数让SQL Server将字符串视为十六进制,并且不需要'0x'
作为第一个字符:
SELECT a, b
FROM mytable
WHERE uuid = CONVERT(binary(16), '1628258DB0DD2F4D9D6BC0BF91D78652', 2)