2016-01-27 3 views
0

В настоящее время я беру импортированные данные из процесса и делаю MERGE в временную таблицу с конкретными данными, которые можно использовать для выполнения некоторых вычислений и размещения данных в соответствующих местах в таблицах на наш конец. Проблема, с которой я сталкиваюсь, заключается в том, что один из столбцов представляет собой столбец состояния, в котором данные предоставляются нам очень плохо. данные заполняют столбец в нескольких разных форматах, таких как texas, tx, Mt ..Быстрый способ динамического обновления таблицы SQL

Есть ли способ в слиянии, чтобы вынуть это "." в конце аббревиатуры или динамически изменять состояния, которые указаны в их сокращении? Если не в пределах слияния после того, как данные установлены в таблице temp, есть ли способ запустить что-то вроде быстрого обновления, без необходимости записывать его 50 раз для каждого состояния? Я по-прежнему относительно новичок в SQL и единственный ответ, который я могу придумать, чтобы быстро исправить это, состоит в том, чтобы запустить последовательность инструкций по обновлению в последовательности, но запись 50 заявлений на обновление, кажется, слишком убита, и я полагаю, что есть чтобы быть лучшим способом сделать это, не зацикливая подряд за строкой примерно за 40000 записей или так за раз.

Любая помощь оценена!

ответ

1

Если я правильно понял,

UPDATE YourTable set StateCol = replace(StateCol,'.','') 

Попробуйте это, заменив точку с пустой строкой.

+0

Удивительный, который должен заботиться о части проблемы! На самом деле об этом не думал! У вас есть идея, как динамически менять названия состояний на их аббревиатуру? – ggiaquin16

+0

@ggiaquin Что вы подразумеваете под этим? дайте мне примеры – sagi

+0

Итак, у меня есть данные, поступающие в Техас, AK, Maine, NJ, tx, mt, alaska в качестве исходных данных в столбце. Я хочу, чтобы вы могли вырвать полные имена, такие как texas, maine, alaska, и заменить их аббревиатурой без необходимости делать цикл (поскольку я пытаюсь сократить время, которое требуется для этого процесса). – ggiaquin16

0

Рассмотрите возможность использования оператора слияния. Это полезно, когда вам нужно обновлять большие объемы данных:

MERGE Yourtable AS target 
USING (select stateName,StateAbr from TableAbrv) AS source 
ON (target.stateName= source.stateName) 
WHEN MATCHED then update 
set target.stateName = source.StateAbr 
Смежные вопросы