私はSQL Server 2014
に共通マイクロソフトAdventureWorks2014
サンプルデータベースを利用したSQLを学んでいます。DBから一意でない列をすべて選択するにはどうすればよいですか?
は、私はちょうど約HAVING
とInformation Schema
今日学んだと2を組み合わせしようとしています。
理由ビーイングは、私は本当にすぐにすべてのテーブルの列が共有されてお伝えしたいと思います。これはうまくいきます:
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY COLUMN_NAME, TABLE_SCHEMA
しかし、出力は私には私を遅くさせるユニークな列名を与えます。
私のような"How to select non 'unique' rows"からの回答を適用しようとしました(5-7その他のSOFのページ間!):
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY COLUMN_NAME
HAVING COUNT(COLUMN_NAME) > 1
...しかし、私はこのエラーを取得:
Msg 8120, Level 16, State 1, Line 1 Column 'information_schema.columns.TABLE_SCHEMA' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
スクリプトの末尾に「COLUMN_NAME BY ORDER」を追加しましたトリック、ありがとう! – SPR