Domanda

Ho una tabella (variabile in effetti), che contiene diverse migliaia di euro (50k circa) righe del modulo:

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

E per tirare questo client è abbastanza pesante compito, soprattutto perché isok è un po').Quello che vorrei fare è trasformare questo in forma:

group        mask
20           01100
21           10101

E magari andare anche un ulteriore passo avanti, che codifica per questo in un lungo etc.

NOTA:Il modo in cui i dati sono memorizzati attualmente non può essere modificato.

È qualcosa di simile a questo possibile in SQL Server 2005, e, se possibile, anche 2000 (molto importante)?

EDIT: Ho dimenticato di mettere in chiaro che la tabella originale è già implicito su ordinazione che deve essere mantenuta, non c'è una colonna che agisce come una sequenza lineare, ma piuttosto l'ordinamento è basato su due altre colonne (interi) come sopra (x & y)

È stato utile?

Soluzione

È possibile trattare il bit come una stringa ('0', '1') e la distribuzione di uno dei tanti stringa di aggregazione concatenazione metodi descritti di seguito: http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top