2016-08-14 3 views
0

私は、交通事故データが完全な列見出しを持つ「Vehicle_Manoeuvre」などの整数を含むテーブルを持っています。たとえば、13は、事故を引き起こした車両操縦を表しています。カラム内の整数値をsqlで表すテキスト値にマップすることはできますか?

私はこのデータを使って(かなり大きい)Excelファイルを持っているので、整数からテキストへのマッピングを知っています。

私が知りたいことの例は、このタイプの操縦に伴う事故の割合ですが、Excelファイルを開き、クエリを書くたびに整数のテキストへのマッピングを見つける必要はありません。

すべての列の整数を手動で変更できます(各列のすべての可能なマッピングを使用して問合せを作成し、新しい列として追加してからorginial列を削除できます)。

SQLがテキストを整数にどのように関連させるかを理解するために、次のような変数を作成することは可能ですか(整数の最初の列とマッピングされたテキストの2番目の列など)

SELECT COUNT(Vehicle_Manoeuvre) FROM traffictable WHERE Vehicle_Manoeuvre='overtaking moving vehicle'; 

いうより:

SELECT COUNT(Vehicle_Manoeuvre) FROM traffictable WHERE Vehicle_Manoeuvre=13; 

テーブル内のデータは、整数の形で残っているにもかかわらず?あなたはManeeuvres参照テーブルでこれを行うだろう

+0

は、あなたのExcelはMySQLのテーブルにファイルをインポートします。その後、そのテーブルでJOINを使用します。 –

答えて

0

create table Manoeuvres (
    ManoeuvreId int primary key, 
    Name varchar(255) unique 
); 

insert into Manoeuvres(ManoeuvreId, Name) 
    values (13, 'Overtaking'); 

あなたは13が特別な意味を持っていることを知っていればあなたも、すでにそのようなテーブルがあるとします。

その後joinを使用します。

SELECT COUNT(*) 
FROM traffictable tt JOIN 
    Manoeuvres m 
    ON tt.Vehicle_Manoeuvre = m.ManoeuvreId 
WHERE m.name = 'Overtaking'; 
関連する問題