在sql server 中like 一个字段 30
IDgoid123456234258369234我现在要加一个条件:goid中包含于id中这里要出的结果就该是idgoid123456234这个要怎么做,感恩啊!!!!!...
ID goid
123456 234
258369 234
我现在要加一个条件:goid中包含于id中
这里要出的结果就该是
id goid
123456 234
这个要怎么做,感恩啊!!!!!! 展开
123456 234
258369 234
我现在要加一个条件:goid中包含于id中
这里要出的结果就该是
id goid
123456 234
这个要怎么做,感恩啊!!!!!! 展开
7个回答
推荐于2017-09-29
展开全部
由于不知道你是用SQLSERVER还是ORACLE,我就先给你一个SQLSERVER版本的吧!
如果你的字段定义是id为字符类型(nvarchar或varchar),而goid也是字符类型的话就很简单了!
直接用like或者charindex就行了!
测试sql如下:
create table #1(id varchar(10),goid varchar(10));
insert into #1( id,goid)values('123456','345'),('222444','123'),('56789','89'),('123','1');
select * from #1 where id like '%'+goid+'%';
select * from #1 where charindex(goid,id)>0;
drop table #1;
如果你的字段定义是id为字符类型(nvarchar或varchar),而goid是整型(int,tinyint等)的话就要转换一下!
测试sql如下:
create table #2(id varchar(10),goid int);
insert into #2( id,goid)values('123456',345),('222444',123),('56789',89),('123',1);
select * from #2 where id like '%'+convert(varchar,goid)+'%';
select * from #2 where charindex(convert(varchar,goid),id)>0;
drop table #2;
如果不属于上面两种情况,参考照转换方法都可以解决!
下面是ORACLE版本的!
因为ORACLE会自己来处理这些问题,直接用like或instr就行了!不分类型哈!
测试sql如下:
create table t1 (id nvarchar2(10),goid varchar(10));
insert into t1( id,goid)values('123456','345');
insert into t1( id,goid)values('222444','123');
insert into t1( id,goid)values('56789','89');
insert into t1( id,goid)values('123','1');
select * from t1 where id like '%'||goid||'%';
select * from t1 where instr(id,goid)>0;
drop table t1;
如果你的字段定义是id为字符类型(nvarchar或varchar),而goid也是字符类型的话就很简单了!
直接用like或者charindex就行了!
测试sql如下:
create table #1(id varchar(10),goid varchar(10));
insert into #1( id,goid)values('123456','345'),('222444','123'),('56789','89'),('123','1');
select * from #1 where id like '%'+goid+'%';
select * from #1 where charindex(goid,id)>0;
drop table #1;
如果你的字段定义是id为字符类型(nvarchar或varchar),而goid是整型(int,tinyint等)的话就要转换一下!
测试sql如下:
create table #2(id varchar(10),goid int);
insert into #2( id,goid)values('123456',345),('222444',123),('56789',89),('123',1);
select * from #2 where id like '%'+convert(varchar,goid)+'%';
select * from #2 where charindex(convert(varchar,goid),id)>0;
drop table #2;
如果不属于上面两种情况,参考照转换方法都可以解决!
下面是ORACLE版本的!
因为ORACLE会自己来处理这些问题,直接用like或instr就行了!不分类型哈!
测试sql如下:
create table t1 (id nvarchar2(10),goid varchar(10));
insert into t1( id,goid)values('123456','345');
insert into t1( id,goid)values('222444','123');
insert into t1( id,goid)values('56789','89');
insert into t1( id,goid)values('123','1');
select * from t1 where id like '%'||goid||'%';
select * from t1 where instr(id,goid)>0;
drop table t1;
参考资料: CodeMonk
展开全部
select * from po_test where charindex(goid,ID)>0
主要 id,goid必须是char类型的字段才可以
主要 id,goid必须是char类型的字段才可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select *
from tab
where ID LIKE '%' + goid + '%'
from tab
where ID LIKE '%' + goid + '%'
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from tablename where charindex(goid,ID)<>0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from table where ID like '%goid%'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询