2011-11-15 11 views
0

私はこのクエリを使用しています:クエリ結果に列名を返すにはどうすればよいですか?

Select * 
From table1 
Join table2 on 
    table2.column1 
    + table2.column2 
    + table2.column3 
    + table2.column4 
LIKE '%' 
    + table1.column1 
    + '%' 
ORDER BY table1.column1 

どのようにしても、結果が見つかったカラム名を返します。たとえば、table1.column1の単語 "bob"がtable2.column3にある場合(このコラムを "comments"と呼ぶ)、クエリの結果には "bob"、続いて "comments"(t2.c3)、続いて他のすべての列(t2.c1、t2.c2、t2.c3、t2.c4)。

+0

はい。私は昨日それをかなりうまく使った。 – Chetan

答えて

0
Select x.bob, y.column1, y.column2, y.column3, y.column4 
From table1 x 
Join table2 y on 
    table2.column1 
    + table2.column2 
    + table2.column3 
    + table2.column4 
LIKE '%' 
    + table1.column1 
    + '%' 
ORDER BY table1.column1 
+0

私はこれを行く感謝を与えるよ! – Chetan

0

あなたは何をしようとしているのか分かりませんが、この簡単なトリックでデータが見つかる場所は「列」になります。必要に応じて変更します。

select *の代わりに、すべての結果列を一覧表示します。次に、各結果列に対して、isNull()でラップされた別の列を追加して、それがどの列から来たのかを示します。

Select 

table2.comments, 
isNull(table2.comments, null, 'comments') col1, 

table2.column2, 
isNull(table2.column2, null, 'column2') col1 

From table1 
Join table 2 on 
    table2.column1 
    + table2.column2 
    + table2.column3 
    + table2.column4 
LIKE '%' 
    + table1.column1 
    + '%' 
ORDER BY table1.column1 
+0

私がしようとしているのは、単語 "bob"を含むテーブル2のすべての行を返すクエリを取得するだけでなく、 "bob"という単語を見つけた列を教えてもらうことです。列名を返します。 – Chetan

+0

最良の方法は、クエリ結果を取得し、PHPやJavaなどのプログラミング言語を使用して結果を「解析」して、どの列に「ボブ」があるかを判断することです。あなたは、あなたが照会しているテーブルのテーブル構造を知っている限り、配列を使って簡単にこれを行うことができます。 – Bryan

関連する問題