州、市、町、郵便番号の表があります。いくつかの郵便番号には複数の町があるため、郵便番号には重複したデータがあります。今私はすべての4つの列を返すクエリが必要ですが、私は結果で郵便番号を繰り返すしたくないです。私は郵便番号ごとに1レコードを返すだけです。複数の町がある場合は、複数の町を示すために結果レコードに「-----------」を戻したいと思います。固有値
どうすればいいですか?
州、市、町、郵便番号の表があります。いくつかの郵便番号には複数の町があるため、郵便番号には重複したデータがあります。今私はすべての4つの列を返すクエリが必要ですが、私は結果で郵便番号を繰り返すしたくないです。私は郵便番号ごとに1レコードを返すだけです。複数の町がある場合は、複数の町を示すために結果レコードに「-----------」を戻したいと思います。固有値
どうすればいいですか?
SELECT CASE WHEN COUNT(Town) > 1 THEN '-----' ELSE MIN(Town) END AS Town, Zip
FROM YourTable
GROUP BY Zip
編集:あなたも国家のような他のフィールドを返すようにしたい場合は、単に例に追加します。
SELECT
CASE WHEN COUNT(Town) > 1 THEN '-----' ELSE MIN(Town) END AS Town,
CASE WHEN COUNT(Town) > 1 THEN '-----' ELSE MIN(State) END AS State,
Zip
FROM YourTable
GROUP BY Zip
私は、郵便番号のみが1つの都市に関連することができますと仮定していると状態。
SELECT State
, City
, CASE WHEN MAX(Town) <> MIN(Town) THEN '-------' ELSE MAX(Town) END as Town
, ZipCode
FROM data
GROUP BY State, City, ZipCode
そんなことは?しかし、それが他のオプションと比べていかに効率的であるかはわかりません。
編集:COUNTはこれをより明瞭に表現することに同意します