我的数据库中有一个表,它有两列,即数据和长度。
我将数据声明为VARBINARY(MAX)
,并假设该表的长度等于5且数据为0x23 0x00 0x12 0x45 0x34
。
表格定义:
CREATE TABLE [dbo].[tbInputFile] (
[InputFileID] [varchar](512) NOT NULL,
[Filename] [varchar](512) NULL,
[Filesize] [bigint] NULL,
[Content] [varbinary](max) NULL
);
问题:
是否可以搜索(使用SELECT
查询)查找数据列中包含0x00 0x12
的记录?
答案 0 :(得分:2)
尝试此SQL查询。内表包含二进制数据类型的测试数据。 0x48
是我在test_col1
列中搜索的数据。
SELECT T.*
FROM
(SELECT CAST('Hello' AS VARBINARY(MAX)) AS test_col1,
CAST('World' AS VARBINARY(MAX)) AS test_col2) AS T
WHERE CAST(test_col1 AS VARCHAR(MAX)) LIKE '%' + CAST(0x48 AS VARCHAR(MAX)) + '%'
答案 1 :(得分:0)
select *
from tbInputFile
where convert(varchar(max), content,2) like '%00%'
or convert(varchar(max), content,2) like '%12%'