2016-10-18 3 views
0

私はSQLサブクエリの連結問題

SELECT id, Name, subset 
, (select count (1) from anotherTable where qid = someTable.id) 
FROM someTable 

値が「サブセット」は、文字列すなわちある正常に動作し、簡単なサブクエリを持っています%のCの% 『)「のようなまたはPreQ2』%」

だから私はこのような値のサブセットでサブクエリを連結したいと思います:

SELECT id, Name, subset 
, exec ('select count (1) from anotherTable where qid = someTable.id ' + subset) 
FROM someTable 

..しかし、取得するには、 『変換に失敗しました』エラー

+0

あなたが望むものは実装するのが非常に難しいです。行ごとに異なるSQLを動的に実行する必要があります。私はあなたが1つ1つずつの行ごとにこのような結果を得ることができると思いますが、単一のクエリでは見つかりません。 – Eralper

+0

[XY問題](http://xyproblem.info/)のような匂いがします。あなたは何を達成しようとしていますか?サブセットの数、変更頻度、サブセットのサブセット数(?!)などに応じて、様々な結果を結合するビューがより適切かもしれません。 – HABO

答えて

1

これはあなたが望むものですか?

SELECT s.id, s.Name, s.subset, 
     (select cast(count(1) as varchar(255)) + s.subset 
     from anotherTable a 
     where a.qid = s.id 
     ) 
FROM someTable s; 

これは、サブクエリ内の連結を行います。サブクエリの外側に+ s.subsetを置くこともできます。

テーブルエイリアスは、クエリの書き込みと読み取りを容易にします。

+0

ありがとうございますが、ここでの出力は基本的にcount(1)を実行し、s.subsetの値を連結します。 –

+0

s.subsetの例は "AND(PreQ1のように '%A%')AND(私は実行する必要があります... selectTitle(1)anotherTableからa.qid = s.idと(PreQ1のような '%A % ')AND(前の5つの'%A% 'のように) –