У меня есть таблица (таблица переменная-факт), который содержит несколько тысяч (50k приблизительно) строк вида:Sql Server Row Concatenation
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
А может быть, пойти еще дальше, кодируя это в длинную и т.д.
Примечание: Путь, в котором данные хранятся в настоящее время не может быть изменено.
Возможно ли подобное в SQL Server 2005 и, если возможно, даже 2000 (довольно важно)?
EDIT: Я забыл сделать это ясно, что исходная таблица уже в неявном упорядоченности, которая должна быть сохранена, там не один столбец, который действует как линейная последовательность, а упорядочение основывается на двух других столбцы (целые числа), как и выше (х & у)
ли есть столбец, который заказывает биты? Потому что вы не гарантировали заказ без него, и ваши маски будут недействительными, если порядок важен. – Welbog
Извините, вы должны были сделать это ясно и отредактировать - таблица для начала, но в настоящее время нет колонки с простой линейной последовательностью. –
Нет таблиц «в порядке», это SQL, а не некоторый файл ISAM. У вас должен быть столбец заказа. Период. –