我如何选择varbinary类型的记录?

时间:2016-01-04 14:28:19

标签: sql sql-server select

我的数据库中有一个表,它有两列,即数据和长度。 我将数据声明为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的记录?

2 个答案:

答案 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%'