㈠ 資料庫 in 的用法
outid IN ('10002') 這樣 因為這個是字元型
㈡ oracle資料庫IN
有點麻煩,就是你要把你的ID重新組裝一個sql,比如你的ID是:1,2,3,4,而查出來的只有1,2,3的數據,4沒有數據,你可以這么做:
select * from (select 1 as id union select 2 as id union select 3 as id union select 4 as id) a where id not in
(select id a FROM VIN n where id in(1,2,3,4) group by id)
得到id:4
你那麼多ID的話,建議建立一個臨時表,把你的200個ID存到這個表裡去,然後SQL和上面一樣,把a表換成你的臨時表就可以了。找到後清空或刪除你的臨時表(根據業務需要)
㈢ 資料庫中in函數可以用什麼代替
sql
aggregate
函數是什麼資料庫可以用
sql
擁有很多可用於計數和計算的內建函數。
[編輯本段]函數的語法
內建
sql
函數的語法是:
select
function(列)
from
表
[編輯本段]函數的類型
在
sql
中,基本的函數類型和種類有若干種。函數的基本類型是:
aggregate
函數
scalar
函數
㈣ Oracle語句中IN和=的區別有哪些
Oracle語句中IN和=的區別有:
1、首先應用范圍不一樣:in 可以理解為是范圍內的選擇;= 只有一個。例如:
select sno, sname from t1 where sno in ('sn1001','sn1002');
select sno, sname from t1 where sno in ('sn1001');
select sno, sname from t1 where sno ='sn1001';
select sno, sname from t1 where sno in (select sno from t2); --子查詢結果可以不止一個結果
select sno, sname from t1 where sno =(select sno from t2); --子查詢結果只能有一個。
2、其次性能也不一樣;=的性能大於in的性能,因為=能較好的使用索引等。
3、in 表示在一個結合內進行查詢,比如 select * from character where letter in ('A','B','C')。
=的作用就是一個值的比較。但是等號也可以實現in的效果,只是寫起來比較麻煩。比如上面的例子,也可以這樣寫:
select * from character where letter='A' or letter='B' or letter='C'.
兩個運算符都比較常用,根據具體的情況選擇。
㈤ access資料庫查詢里in的用法和等號有什麼區別
如果子查詢只有1條記錄,in和=是沒有區別,如果子查詢有多條記錄,用=會出錯的,所以in是無論只查詢有多少條記錄都可以使用,而=只有當子查詢只有1條記錄的時候才能使用
in和exists理解上其實是差不多,但對資料庫而言,in的執行順序是先執行只查詢條件,然後把記錄和外查詢核對,找符合條件的,
而exists是先執行外查詢,再執行子查詢,找到外查詢記錄後和只查詢對比符合條件的,
如果外查詢和子查詢的條目數差異很大,那麼效率相差很明顯的
㈥ 資料庫 IN,OR,AND用法
我舉例說明基本用法吧,lz如果已經有了基礎而是要知道更多更深入的知識的話,不需要在知道提問,直接網路里搜索,資料大把大把的,而且不難懂。
表(stu)結構和數據如下:
id name age height
1 abby 14 134
2 amelia 13 128
3 ken 14 144
1、in
select t.* from stu t where age in (14, 15);
查詢結果是1和3,沒有age為15的。
2、or
select t.* from stu t where age = 13 or age = 14;
得到所有的3條,這是「或」,年齡為13歲或14歲
3、and
select t.* from stu t where age = 13 and name = 'ken';
沒有結果,這是「與」的關系,檢索年齡13歲,名字是ken的學生,沒有符合條件的。
㈦ 資料庫原理 in的用法
如有地區表t_zone有以下列(zone_id,zone_name ),想知道zone_id為217和218的zone_name。sql語句可以這么寫:
select t.zone_name from t_zone t
where t.zone_id in(217,218)
也可以:
select t.zone_name from t_zone t
where t.zone_id = 217 or t.zone_id = 218
㈧ in在sql中是什麼意思
select * from table where id in (1,3,5)
查詢表裡 id 是1 或者3 或者5 的記錄
select * from table where name in ('小明','小紅','小麗')
查詢表裡 name 等於 小明 或者小紅 或者 小麗的記錄
還有not in
㈨ 資料庫中in、on、with的用法及示例。
in
select * from tab where field in ('A', 'B', 'C')
等價於select * from tab where field = 'A' or field = 'B' or field = 'C'
on永在表連接的時候
select * from a inner/left/right join b on a.xx = b.xx
with用法:
創建一個表:
create table regr (pid integer,id integer, name char(20))
alter table regr alter id set not null add primary key(id)
insert into regr values(-1,1,'library'),(1,2,'news'),(2,3,'world news'),(2,4,'politics'),(2,5,'bussiness')
(2,6,'science'),(2,7,'technology'),(1,8,'sports'),(8,9,'local'),(8,10,'collegiate'),(8,11,'professional')
(9,12,'soccer'),(10,13,'soccer'),(11,14,'soccer'),(9,15,'football'),(10,16,'football'),(11,17,'football'
使用with得到數據樹
WITH RPL (PID, ID, name) AS
(SELECT ROOT.PID, ROOT.ID, ROOT.NameFROM regr ROOT
WHERE ROOT.PID = 8
UNION ALL
SELECT CHILD.PID, CHILD.ID, CHILD.Name
FROM RPL PARENT, regr CHILD
WHERE PARENT.ID = CHILD.PID)
SELECT DISTINCT PID, ID, Name
FROM RPL
ORDER BY PID, ID, Name
RPL 作為一個具有以下三列的虛擬表:PID、ID 和 name。
WITH 子句內的第一個 SELECT 語句是初始化表。它只執行一次。它的結果形成虛擬表的初始內容以作為遞歸的種子。在上面的示例中,種子是 PID 為 8 的一行或多行。
第二個 SELECT 語句執行多次。將種子作為輸入(JOIN 中的輔助表)傳遞給第二個 SELECT 語句以產生下一個行集合。將 JOIN 的結果添加(UNION ALL)到虛擬表的當前內容中,並放回到其中以形成用於下一次傳遞的輸入。只要有行產生,這個過程就會繼續。
㈩ oracle in的用法
concat()是拼接函數,將兩個字元串拼接在一起
select
concat(first_name,last_name)
from
employees
||
是字元串連接符,用與連接字元串
select
first_name||last_name
from
employees
兩者很相似但也有不同的地方
||可以在字元串中間添加自定義的字元,而concat不行
如果你是要連接兩個欄位可以用concat()也可以用||
,用concat
可讀性好
如果3個以上的連接欄位就推薦||
可以根據你的需要來設置.