質問

次の形式の数千 (約 50k) 行を保持するテーブル (実際にはテーブル変数) があります。

group (int)  isok (bit)    x    y
20           0             1    1
20           1             2    1
20           1             3    1
20           0             1    2
20           0             2    1
21           1             1    1
21           0             2    1
21           1             3    1
21           0             1    2
21           1             2    2

そして、これをクライアントに戻すのはかなり大変な作業です (特に isok はビットなので)。私がやりたいのは、これを次の形式に変換することです。

group        mask
20           01100
21           10101

そして、これをlongなどにエンコードすることでさらに一歩進めるかもしれません。

注記:データの保存方法は現在変更できません。

このようなことは SQL Server 2005、そして可能であれば 2000 でも可能ですか (非常に重要です)。

編集: 元のテーブルはすでに暗黙的な順序付けになっており、これを維持する必要があることを明確にするのを忘れていました。線形シーケンスとして機能する列は 1 つではなく、順序付けは上記のように他の 2 つの列 (整数) に基づいています (x &y)

役に立ちましたか?

解決

ビットを文字列 (「0」、「1」) として扱い、ここで説明する多くの文字列集約連結メソッドの 1 つをデプロイできます。 http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

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