delete from tb where cast(col as varchar(max)) is null
create table tb ( id int, [name] varbinary(max) ) insert into tb values(1,11111) insert into tb values(2,null) select * from tbselect * from tb where [name] is null /* id name ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 NULL(1 行受影响) */delete from tb where [name] is null -- (1 行受影响)select * from tb /* id name ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 0x00002B67(1 行受影响)*/drop table tb
你的删除指的是 字段类型为varbinary(max) 为空 为条件进行删除吗
楼上好select * from tb 显示name的值是“0x000000000000000000000000000000000000000000000000000000......”
Varbinary(max)存入不是null值,而是一串“0x000000....”
create table tb ( id int, [name] varbinary(max) ) insert into tb values(1,11111) insert into tb values(3,0x000000000000000)要得到id name 3 0x0000000000000000
select * from tb where cast(name as int) =0 /* id name ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3 0x0000000000000000
你好insert into tb values(9,0x000000000000000000000) insert into tb values(10,0x303030303500000000000)这样子的语句时,您的查询则不起效果了9 0x0000000000000000000000 10 0x0303030303500000000000
(
id int,
[name] varbinary(max)
)
insert into tb values(1,11111)
insert into tb values(2,null)
select * from tbselect * from tb where [name] is null
/*
id name
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2 NULL(1 行受影响)
*/delete from tb where [name] is null
--
(1 行受影响)select * from tb
/*
id name
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 0x00002B67(1 行受影响)*/drop table tb
(
id int,
[name] varbinary(max)
)
insert into tb values(1,11111)
insert into tb values(3,0x000000000000000)要得到id name
3 0x0000000000000000
题目是是怎么回事?
不是要查询 列Varbinary(max)为null的数据的吗
/*
id name
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 0x0000000000000000
insert into tb values(10,0x303030303500000000000)这样子的语句时,您的查询则不起效果了9 0x0000000000000000000000
10 0x0303030303500000000000