1

2000 のテーブルを持つ xBase タイプのデータベースを理解しようとしています。それらをすべてSQL Serverデータベースにインポートするのではなく、「SELECT INTO tmpDBF」ステートメントを使用してテーブルを1つずつインポートし、テーブル構造や各列の値の範囲など、知りたいことを抽出したかった. 次に、次のテーブルをインポートするときに、異なる構造の tmpDBF テーブルに対して同じクエリを実行できるようにしたいと考えています。

クロス適用を使用してこれを行うことを望んでいましたが、上記のエラーメッセージに遭遇しました。

select cols.column_name 'Name', cols.data_type 'Type', mv.minV 'Minimum'
  from information_schema.columns cols
  cross apply (select MIN(cols.column_name) minV FROM tmpDBF ) mv
  where cols.table_name = 'tmpDBF'

クエリを再構築する方法はありますか、それとも行き止まりの道になりましたか?

10 月 6 日に追加:

与えられた tmpDBF

 Who     | Zip
 --------|------
 Charlie | 97689
 Foxtrot | 92143
 Delta   | 12011

次の結果を見てみたい

 Name | Type    | Minimum | Maximum
 -----|---------|---------|--------
 who  | varchar | Charlie | Foxtrot
 Zip  | int     | 12011   | 96789

最小列と最大列を varchar としてキャストする必要があることを認識しています。

4

2 に答える 2

0

次のようなものを試してください

select cols.column_name 'Name', cols.data_type 'Type', mv.minV 'Minimum'
      from information_schema.columns cols
      cross apply (select MIN(cols.column_name) minV FROM tmpDBF 
                    WHERE tmpDBF.CommonCol = cols.CommonCol) mv
      where cols.table_name = 'tmpDBF'
于 2013-10-05T20:32:14.973 に答える