2013-03-14 3 views
0

У меня есть таблица в SQL Server с именем Settings с столбцом settingValue, который содержит значения, разделенные запятыми.Обновление столбца с разделителями-запятыми в SQL Server 2008

Пример данных для этой колонки:

0, 0 
US, US 
[email protected], [email protected] 

Я хочу написать запрос на обновление таким образом, что столбец settingValue отображает только одно значение, что это должно привести к

0 
US 
[email protected] 

Не знаете, где start, я должен сначала найти запятую (,), а затем усечь заявление?

+4

Не храните запятую значения в столбце. Переконструируйте свою модель данных. –

+0

Я не хранил, я хочу удалить его, кто-то еще ввел эти записи, дубликаты – user580950

+0

Это 3 отдельных записи – user580950

ответ

4

Если вы хотите, чтобы удалить все после первой запятой, то вы можете использовать:

update yourtable 
set col = substring(col, 1, charindex(',', col)-1) 
where charindex(',', col) > 0 -- only update the rows with a comma 

См SQL Fiddle with Demo

+0

Или просто начать с 0 и не нужно использовать -1 ? – JodyT

+0

@JodyT просто привычка начинать с 1. :) – Taryn

+0

Я получаю эту ошибку, когда пытаюсь Msg 537, уровень 16, состояние 3, строка 1 Неверный параметр длины передается функции LEFT или SUBSTRING. Заявление было прекращено. – user580950

Смежные вопросы