У меня есть набор данных, который я получил от XML и его вспыхнувший со следующей структурой:Необходимость обновления T-SQL заявление динамически назначить номер записи
[Таблица данных]
[ID] [Name] [Value]
1 ad1_pk 1
2 ad1_addr1 123 Easy Street
3 ad1_pk 2
4 ad1_addr1 99 US31
5 ad1_atfk 6
6 ad1_pk 3
... {and so on}
Я добавил столбец (называемый recNum), чтобы указать отдельный номер записи; однако я не нашел быстрый способ установить номер записи для каждой записи. Количество строк, указывающих отдельную запись, может меняться, поэтому я хочу, чтобы оператор обновления мог справиться с этим. Каждая «запись» имеет имя столбца, которое заканчивается на «_pk», поэтому я определяю начало каждой записи в наборе данных.
Я успешно справился с циклом while, но это слишком медленно, и таблицы могут иметь миллионы записей. Пример:
Есть ли у кого-нибудь предложение сделать это быстро, без использования курсора? Моя конечная цель состоит в том, чтобы вставить заявления в SQL таблицы (уже создан) следующего формата:
insert into myNewTable ({column name list}) VALUES ({value list})
... [обновлено 2015-06-24 00:26 EDT] Это как далеко я получили до сих пор ... https://drive.google.com/file/d/0B82UP-AIFz_ITlNIb1ZwSFdyODg/view?usp=sharing
SELECT TOP 100
z2.ID,z2.Name,z2.Value,CASE WHEN z2.ID=RecIDs.ID THEN z2.Value ELSE NULL END RecNum
FROM MyTable 2
LEFT JOIN (
SELECT DENSE_RANK() OVER (ORDER BY ID) drn,ID FROM MyTable
WHERE RIGHT(name,3)='_pk'
) RecIDs ON RecIDs.ID = z2.ID
ORDER BY ID
... Мне нужно, чтобы заполнить пробелы. Любые предложения?
[обновлено 2015-06-25 9:33 EDT] Это для SQL Server 2008 R2
Если вам действительно нужна помощь, пожалуйста, облегчите людям помощь. Для справки о том, как это сделать: [Советы по заданию хорошего вопроса о структурированном запросе языка (SQL)] (http://meta.stackoverflow.com/questions/271055/tips-for-asking-a-good-structured-query -language-sql-question) – har07
Ваше редактирование не делает вопрос более понятным. Измените свой вопрос, чтобы включить структуру таблиц релевантов и желаемый результат. –
, какую версию сервера sql вы используете? – ughai