2016-05-04 11 views
-1
SELECT ma.ManningID 
     ... 
     ,'P01' AS Pline 
     ... 
FROM Manning AS ma 
UNION ALL 
SELECT ma.ManningID 
     ... 
     ,'P02' AS Pline 
     ... 
FROM Manning AS ma 
UNION ALL 
SELECT ma.ManningID 
     ... 
     ,'P03' AS Pline 
     ... 
FROM Manning AS ma 

多くの場合...このビューのクエリをよりコンパクトにすることは可能ですか?このビューのクエリをよりコンパクトにすることは可能ですか?

+0

どのようにフォーマットされていますか?それが読める限り、それはあなたが本当に気にするべきことです。あなたはそれぞれのセクションをそれ自身のビューにして、これらを一緒に結合することができますが、そうする利点はありません。 –

+3

'Pline'列が選択されている以外のクエリに実際に違いはありませんか?もしそうならば、 'Manning'と' Pline'値が入ったテーブルの間に 'CROSS JOIN'を置かないのはなぜですか? –

答えて

3

table value constructor(通常はINSERTで使用)、次にCROSS JOINを使用できます。

SELECT ma.ManningID 
, ... 
, p.Pline 
, ... 
FROM Manning ma 
CROSS JOIN (VALUES ('P01'),('P02'),('P03')) P(Pline) 
1

これは?

SELECT ma.ManningID 
     ... 
     ,Pline 
     ... 
FROM Manning AS ma 
cross join (select 'p01' AS Pline 
union 'p02' 
union 'p03') c 
関連する問題