3

SQL で 2 つの select ステートメントの結果を結合する方法はありますか? (ユニオン演算子と同様に - ただし、ユニオンは同じ数とタイプの列に対してのみ機能します)

私は何かをしたい

SELECT * FROM JOBS j 
UNION 
SELECT COUNT(fj.Id_Filter) FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job

ただし、UNIONでは機能しません

4

1 に答える 1

5

すべてのselectステートメントの列数が同じである必要があります。nullたとえば、値の列にエイリアスを追加することでそれを行うことができます。

SELECT cast(null as int) as cnt,col1,col2 FROM JOBS j 
UNION 
SELECT COUNT(fj.Id_Filter),null,null FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job

キャスト/変換を使用して、最初の選択ステートメントにエイリアスを配置する必要があります。2 番目のステートメントには、1 番目と同じ数の列を含める必要がありますnull

編集

SELECT cast(null as int) as cnt,j.* FROM JOBS j 
UNION 
SELECT COUNT(fj.Id_Filter),j.* FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job
于 2013-09-13T08:41:55.253 に答える