我正在尝试查找所有不以幻数 ff d8 ff e0
开头的图像(jpg 的签名)根据MSDN,我应该能够在我的数据上使用 patindex。然而
SELECT TOP 1000 [cpclid]
FROM [cp]
where patindex('FFD8FFE0%', cpphoto) = 0 -- cpphoto is a column type of image
给我错误
消息 8116,级别 16,状态 1,第 1 行参数数据类型图像对于 patindex 函数的参数 2 无效。
找到与幻数不匹配的记录的正确方法是ff d8 ff e0
什么?
更新:
这是一个链接,用于测试您的任何建议。
I Ross 的解决方案最终对查询内容进行了一些调整。
SELECT [cpclid]
FROM [cp]
where convert(varchar(max), cast(cpphoto as varbinary(max))) not like convert(varchar(max), 0xFFD8FFE0 ) + '%'
我找到了更好的解决方案,请参阅我的答案。