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