为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:CREATE TABLE TEST1(
ID INT IDENTITY(1,1) PRIMARY KEY,
C1 CHAR(50),
C2 IMAGE);
INSERT INTO TEST1(C1,C2) VALUES ('AAA','0');
数据库中插入的是0x00这样一个十六进制的字符
我可以用C2字段作为查询条件进行查询吗
比如SELECT C1 FROM TEST1 WHERE C2 = 0;
或者SELECT C1 FROM TEST1 WHERE C2 = 0x00;
这样可以吗
小图片可以用varbinary 就可以做条件查询了
--第一种,使用BLOB_EQUAL函数
DROP TABLE TEST1;
CREATE TABLE TEST1(
ID INT IDENTITY(1,1) PRIMARY KEY,
C1 CHAR(50),
C2 IMAGE);
INSERT INTO TEST1(C1,C2) VALUES ('AAA','0');
COMMIT;
SELECT C1 FROM TEST1 WHERE BLOB_EQUAL(C2,'0');
SELECT C1 FROM TEST1 WHERE BLOB_EQUAL(C2,'0x00');
--第二种,修改数据类型为VARBINARY:
DROP TABLE TEST1;
CREATE TABLE TEST1(
ID INT IDENTITY(1,1) PRIMARY KEY,
C1 CHAR(50),
C2 VARBINARY);
INSERT INTO TEST1(C1,C2) VALUES ('AAA','0');
COMMIT;
SELECT C1 FROM TEST1 WHERE C2 = 0;
SELECT C1 FROM TEST1 WHERE C2 = 0x00;
特殊类型 有时不能直接用=
需要使用其他专用函数 比如:BLOB_EQUAL