如何從兩列之一中選擇值,其中值包含在另一個表中?
源表:
| 資料A | 資料B |
|---|---|
| 蘋果 | 蘋果 |
| 橘子 | 歐拉 |
| 松果 | 菠蘿 |
| 計算機 | ABCD123 |
檢查條目的表:
| 資料C |
|---|
| 蘋果 |
| 橘子 |
| 菠蘿 |
結果查詢:
| 結果 |
|---|
| 蘋果 |
| 橘子 |
| 菠蘿 |
源表的第四個條目 (Computer/ABCD123) 無效,因為檢查表中不存在“Computer”和“ABCD123”。
我試過:
Select
Switch(
DataA in (SELECT DataC FROM CheckTable), DataA, --if DataA is found in DataC, select DataA
DataB in (SELECT DataC FROM CheckTable), DataB, --if DataB is found in DataC, select DataB
) AS Result --return variable 'Result'
FROM SourceTable;
沒有成功。
uj5u.com熱心網友回復:
嘗試:
select distinct DataC as result
from check_tbl
where DataC in (select distinct DataA
from source_tbl)
or DataC in ( select distinct DataB
from source_tbl)
資料示例:
create table source_tbl(
DataA varchar(30),
DataB varchar (30) );
insert into source_tbl values
('Apple','Apple'),
('Orange','Ora'),
('Pinea','Pineapple'),
('Computer','ABCD123');
create table check_tbl(
DataC varchar(30) );
insert into check_tbl values
('Apple'),
('Orange'),
('Pineapple');
結果:
result Apple Orange Pineapple
演示:https : //dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=8b0a13a07ae245b00616bb24b0a972b0
uj5u.com熱心網友回復:
一個簡單的方法UNION:
SELECT DataA
FROM Demo1 INNER JOIN DemoCheck ON Demo1.DataA = DemoCheck.DataC;
UNION
SELECT DataB
FROM Demo1 INNER JOIN DemoCheck ON Demo1.DataB = DemoCheck.DataC;
AUNION只檢索該值一次,即使它們存在于聯合的兩個部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386691.html
