2016-06-23 21 views
1

1列で重複行を返します私が実際に望んでいるのは、このクエリに同じレコードを返しますが、ある特定の回数だけ別の値を返す何かを追加することです。SQLは、私は私の</p> <pre><code>ab cd ef gh -------------- a b c d </code></pre> <p>を返します。この</p> <pre><code>select ab,cd,ef,gh from alphabets </code></pre> <p>のように私にいくつかの列の値を返します単純なSQLクエリを変換するために、いくつかの単純なSQLを探しています

ご迷惑をおかけして申し訳ございません。

P.S.誰かがそれを行う方法を表示することができる場合は、C#でオブジェクトへのSQLマッピングでも同様に便利です。ありがとう。

+0

なぜ?何回ですか? 'x、y、z'は行数のためにこの順番ですか? –

+0

なぜですか?このオブジェクトを、複数のアイテムを含む他のオブジェクトと比較する必要がありますが、異なる値を持つ列に基づいています。何回ですか?任意の数(選択との和集合なし)とすることができます。特定の順序はありません。x、y、zは異なる値を表示するだけです。 – BanTim

+0

'x、y、z 'はどこから来ますか? – Blorgbeard

答えて

1

さて、ここではいくつかのSQLマジックがあります。

declare @alphabets table (ab varchar, cd varchar, ef varchar, gh varchar) 
insert @alphabets values ('a', 'b', 'c', 'd') 

select a.ab, a.cd, xyz.ef, a.gh 
from 
    @alphabets a, 
    (select 'x' ef union all 
    select 'y' ef union all 
    select 'z' ef) xyz 

これは単に(暗黙)クロス単一@alphabets行のデカルト積三のxyz行を取得するために参加使用されます。

1

値 'x'、 'y'、 'z'の出所は明記されていませんが、通常これは別のテーブルのものです。その場合には、のは、別のテーブルを作ってみようと第二表のすべての行は、あなたが説明したテーブル内の同じ行と結合方法でそれらに参加:

DECLARE @Table1 TABLE (ab varchar(1), cd varchar(1), ef varchar(1), gh varchar(1)) 
INSERT INTO @Table1 VALUES ('a', 'b', 'c', 'd') 

DECLARE @Table2 TABLE (zz varchar(1)) 
INSERT INTO @Table2 VALUES ('x'),('y'),('z') 

SELECT ab, cd, ef, zz 
FROM @Table1 T1 
INNER JOIN @Table2 T2 ON 1=1 

結果:

ab | cd | ef | zz 
----------------- 
a | b | c | x 
a | b | c | y 
a | b | c | z 
関連する問題

 関連する問題