下午遇到乙個問題,in子查詢返回多個值。
網上查了很多文件,資料,都沒收穫。
問了技術群的同僚,竟然還被嘲笑了。in 怎麼可能匹配多個欄位呢!
個人印象中曾經在**見到過,所以就覺得不服氣。自己慢慢地去試,試出來了。
我們常用的in 操作是這樣的:
select * from tab t
where t.col1 in ('value1''value2');
但是如果是多個列的取值來自同乙個子查詢呢?
我們是不是要這樣寫了?
select * from tab1 t1
where t1.col1 in (select col1 from tab2)
and t1.col2 in (select col2 from tab2);
現在分享一種簡便的方法給大家:
select * from tab t
where (t.col1,t.col2) in (select col1,col2 from tab2);
也就是這樣的
select * from tab t
where (t.col1,t.col2) in (('value','value1'),('value','value2'));
我還不知道為什麼網上的一些文件中為什麼沒有提到這種寫法。
在這裡寫出來是想分享給大家,另外這也是自己的乙個筆記。
如果對這方面比較熟悉的朋友,有不同的看法,還希望多多指教。
另外,**如果自己覺得是對的,自己動手努力實踐出來。
當他人請教時,自己沒有嘗試成功之前,不要盲目否定。**
sp executesql返回多個值
declare sql nvarchar 2000 declare cc int declare ss int select sql n select c select count from yg select s select sum b id from yg execute sp execute...
ORA 01427 單行子查詢返回多個行
問題情境之一的模擬 select a.sname,b.score,select c.tel from tab c c where c.no a.no tel from tab a a,tab b b where a.id b.id 執行指令碼,報錯 ora 01427 單行子查詢返回多個行 原因 查...
方法out(返回多個值)
static void main string args foreach int s in intnum 遍歷,自己看一下隨機數組元素後的陣列 int result 定義乙個變數,用於接收陣列的和 int max 用於接收陣列的最大值 int min 用於接收陣列的最小值 result comput...