質問

Iは、(複数の行を有する)単一の列としてデータの単一の列を表示する方法を探しています。たとえば、

FieldA  FieldB
------- ---------
1       Some Text [row]


Header Value [col]
------ ------
FieldA 1          [row1]
FieldB SomeText   [row2]

SQL Server 2005の?

でこれを行う方法はあります
役に立ちましたか?

解決

うん、TSQLコマンド、PIVOTがあります。そして、このトピックに関するいくつかの既存のスレッドがあります。しかし、私は1つのぶっきらぼうを見つけることができません。

私のいつもの答えは(おそらく5またはそれらのスレッドの6)が適切な場合はExcelやAccessを使用について考えることである - それはエンドユーザーに価値を提供するために非常に簡単な方法です。しかし、YMMVます。

他のヒント

あなたはアンピボット

をここで説明し使用することができます
Declare @tbl Table
(
  c1 int,
  c2 int,
  c3 int
)

Insert into @tbl Values(1,2,3)

Select
  cname,
  cval
From
  (
    Select C1,C2,C3 From @tbl
  ) t
UNPIVOT
  (Cval For Cname In
    (C1,C2,C3)
  )As U

しかし、それは通常、融通の利かないと遅いです。あなたは労働組合を使用することができますが、それはmaintainceの観点から、通常は悪いですが、速いかもしれません(チェックする必要があります)または動的クエリとを使用する労働組合

もう一つの簡単な方法:

SELECT 'FIELDA'、テーブル
から値としてFIELDA 組合
テーブルから値として「フィールド」、フィールドを選択し、

が、ピボットは、あなたが試してみたいものを本当にしている。

他のいくつかの応答が示唆されている

のように、T-SQLのPIVOTコマンドを使用します。

あなたは、SQL Serverレポートサービスへのアクセスを持っている場合は、

、あなたは代わりに自分の単純なクエリに基づいてレポートを作成して、マトリックス・レポートのコントロールを使用することができます。ドラッグアンドコントロールにあなたのフィールドをドロップし、作業が完了している!

あなたが特定のDBに合わせた具体的な何か、すなわちではない一般的な解決策が、1つを探しているなら、あなたはこのような何かを行うことができます:

select Field1+';'+convert(nvarchar(255), Field2 )+';'+convert(nvarchar(255),Field3 ) from Table

は、あなたがそうでなければ、あなたのorderbyのとGROUPBYので発生する何が起こっているかを知ることはありません(あなたは関係なく、それには何か文字の問題を持っていないないように、あなたが選択を実行する前に、照合を修正することを忘れないでください(255)NVARCHARへの変換を使用します)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top