sqlandin
A. sql条件in三个sql的查询结果
你没写具体内容不好判断,不过一般来说是两种情况。
(1)三个sql取交集,这种情况下用and就可以,也就是满足第一个sql的同时满足第二个sql,而且还满足第三个sql。
where
字段
in(sql1)
and
字段
in(sql2)
and
字段
in(sql2)
(2)三个sql是并集的关系,那么用or就可以,要么满足第一个,要么第二个,要么第三个。
where
字段
in(sql1)
or
字段
in
(sql2)
or
字段
in(sql3)
当然如果有什么特殊的,那就不好说了。
B. 在sql语句中,AND type in 什么意思
select *
from 表枯友
where xxx
and type in (1,2,3)
就是表纤孙 中的没竖槐type 字段,在1,2,3的范围内的意思
C. sql里,where a in (select .....) and b in (select .....)这种表示合法吗
写法合法的,并且经常这样用
D. SQL中in传入字符串处理方法
这里说到的in方法,例如:
select * from Students where ID in ('111', '222', '333');
或者
select * from Students where Name in ('张三', '李四', '王五'老陪);
declare @sql varchar(1000)
set @sql = 'select * from Students where 1=1 '
set @sql = @sql + ' and ID in ('+ @整型参数+') '
declare @sql varchar(1000)
declare @strLen int
declare @next int
declare @where varchar(1000)
set @sql = 'select * from Students where 1=1 '
if(@userId<> '')
begin
set @strLen= dbo.Get_StrArrayLength(@userId,',')
set @next=1
祥渣 set @where=''
if(@strLen > 0) begin
set @sql=@sql+' AND (UserID IN ('
while @next<=@strLen begin
侍宴蠢 set @where=@where+ ','''+ dbo.Get_StrArrayStrOfIndex(@userId,',',@next) +''''
set @next=@next+1
end
if(LEN(@where) > 3) begin
set @where= SUBSTRING(@where, 2, LEN(@where))
end
set @sql=@sql + @where +'))'
end
end
E. sql in用法
看你的C的类型,如果是int就是:in(1,2,3,4,5);如果是string就是in('ab','ac','bb','bc')这样的
F. Sql语句in后面跟的数据过多如何解决
如果是离散型数据就只能用in了,因为这些数据没有茄巧规律,你就只能一项项列出来,让它们都手纳灶包含到你所要查询的语句里面。
如果是连续型数据就可以不用in了,可毕扮以用between...and来替代in,而且这样写一般来说效率要比in高。
G. sql查询条件中 in可以用多个字段吗
不知道楼主是要怎么用:
如果几个in是或且返档非的条件关系是可以的岁知
如 select * from table1
where a in (1,2)
and b in(select b from table2)
..........
如果想多个字段来in一个集乎世消合就不行了,除非用and分开
另外你可以考虑使用extends 来实现多字段分别关联取值
---数据库:oracle
H. sql中 in的用法
你现在的这个要求一般不用in.
假如你说的大类C是指大类的名称是"C", 则用下面的语句:
select c.*
from category a,category b, proct c
where a.name='C' and a.pid=0
and b.pid=a.cid
and c.cid=b.cid
首先从category中取出name为'C'且pid为0的数据(得到cid), 表映射到a;
然后以自联,再从category中取得pid为a的cid的数据(也就是大类C中的所有小类,表映射到b;
最后再关联产品表proct, 取得cid为b的cid的所有产品,表映射到c.
当然, 如果你所说的C大类, 直接就知道其id号, 就像你给的例子中直接知道了10, 那么"自联"这步就不需要了.
-------------------------------
如果非要用in, 则按下面的方式:
select * from proct where cid in (
select b.cid
from category a,category b
where a.name='C' and a.pid=0
and b.pid=a.cid
)
-------------------------------
另外, in 还用在下面这种情况, 比如:
你想取得1,3,8,9这四个小类的所有产品, 则可以用:
select * from proct where cid in (1,3,8,9)
I. SQL中用IN和自段=''AND自段=''的区别
有区别,COULMN IN(A,B) 相当睁团于COULMN='或早升A' or COULMN='B'
是or不衫老是and