where句に一致しないレコードを表示する必要があります。where句に一致しない表示レコード
例 - select * from citytable where city in ('aa','bb','cc', 'dd','ee');
のみaa
、bb
、cc
がテーブルに存在する、dd
& ee
がテーブルに存在しません。しかし、私はまだdd
& ee
と表示する必要があります。
where句に一致しないレコードを表示する必要があります。where句に一致しない表示レコード
例 - select * from citytable where city in ('aa','bb','cc', 'dd','ee');
のみaa
、bb
、cc
がテーブルに存在する、dd
& ee
がテーブルに存在しません。しかし、私はまだdd
& ee
と表示する必要があります。
に存在するレコードが存在しないので、「DD」と「E-E」行の列は常にnullになることを覚えておいてください。 IN条件は、INリストの一意の(別個の)値を含むテーブルへの内部結合と同じです。あなたが望むのは外部結合です。 INリストの代わりにテーブルが必要です。以下のソリューションでは、この「ヘルパー」テーブルをどのように作成するかを示します。他にもいくつかの方法がありますが、これはちょうどアイデアを示しています。
select deptno, ename from emp where deptno in (10, 50, 80);
DEPTNO ENAME
------ ------
10 CLARK
10 KING
10 MILLER
with h (deptno) as (
select 10 from dual union all
select 50 from dual union all
select 80 from dual
)
select h.deptno, e.ename
from h left outer join emp e
on h.deptno = e.deptno
;
DEPTNO ENAME
------ ------
10 CLARK
10 KING
10 MILLER
50
80
出力をどのように見たいかわかりません。 city = 'ee'のデータがない場合は、正確に何を表示しますか?このようなもの?
SELECT * FROM
(SELECT key AS A_key, one AS A_one, two AS A_two FROM cityTable WHERE one='aa') AS A
JOIN
(SELECT key AS E_key, one AS E_one, two AS E_two FROM cityTable WHERE one='ee') AS E
ON A_key=E_key
...etc.
編集:または多分これはそれです:
私はあなたが'dd'
AMD 'ee'
がテーブルに存在しないが、あなたがunion all
を使用してそれを達成することができますので、あなたはまだそれを必要と理解しています。しかし、あなたは、おそらくこのような何かを探しているあなたのcitytable
SELECT ct.col1 AS city, ct.col2.....<all columns of your table>
from citytable ct
where city in ('aa','bb','cc')
UNION ALL
select 'dd' as city,null ,null.....<nulls as many times as the number of columns of your table>
from citytable ct1
UNION ALL
select 'ee' as city,null ,null.....<nulls as many times as the number of columns of your table>
from citytable ct2
明確にする必要があり続き--- ************************************ ********* CityTable \t \t 市\t国 AA \t AA BB \t BB CC \t CC ******************* ************************* \t 私のクエリ - select * from citytable都市 '(' aa '、' bb '、' cc ' 、 'dd'、 'ee'); \t ****************************************** \t 出力Required- \t 市 DD \t EE \t \t ************************************* ******** – Kalz
typoのためのお詫び.....私の出力は、どこの節でどのレコードも返さなかった値でなければなりません.......それはdd&eeだけです – Kalz
'SELECT city FROM (SELECT city、count(*)as city cから都市をGROUP BY GROUP)どこc = 0'ですか? –