变量 declare @telephone varchar(11) set @telephone='xxx' select * from tb where worktelephone=@telephone or hometelephone=@telephone or cellphone=@telephone
我忘说了 只可以使用and OR不可以
select * from tb where charindex(@phone+',',worktelephone+','+hometelephone+','+cellphone+',')>0
因为这是我公司技术经理给我出的一道题 他提示我 用and查比or好用
他是不是想告诉lz,负负得正?use tempdb; /* create table tb ( id int not null, worktelephone nvarchar(10), hometelephone nvarchar(10), cellphone nvarchar(10) ); insert into tb(id,worktelephone,hometelephone,cellphone) values (1,'1234',null,null), (2,null,'1234',null), (3,null,null,'1234'); */ declare @str as nvarchar(10); set @str = '1234';select * from tb where not ( @str <> worktelephone and @str <> hometelephone and @str <> cellphone );
declare @telephone varchar(11)
set @telephone='xxx'
select * from tb where worktelephone=@telephone or hometelephone=@telephone or cellphone=@telephone
where charindex(@phone+',',worktelephone+','+hometelephone+','+cellphone+',')>0
/*
create table tb
(
id int not null,
worktelephone nvarchar(10),
hometelephone nvarchar(10),
cellphone nvarchar(10)
);
insert into tb(id,worktelephone,hometelephone,cellphone)
values
(1,'1234',null,null),
(2,null,'1234',null),
(3,null,null,'1234');
*/
declare @str as nvarchar(10);
set @str = '1234';select *
from tb
where not
(
@str <> worktelephone
and
@str <> hometelephone
and
@str <> cellphone
);