2010-12-10 2 views
1

Я пытаюсь удалить текст из столбца Description после символа «-». Я знаю, что мне нужно будет использовать функцию Right(), но как бы синтаксис выглядел как цикл через все записи и изменение всех записей в столбце «Описание»?Функция SQL Server Right() для удаления символов из определенной точки в столбце

Пример ...

ДО:

0002 55 Actor Hill - 0002 
0004 57 Adair - 0004 
0005 74 Adams - 0005 

ПОСЛЕ:

0002 55 Actor Hill 
0004 57 Adair 
0005 74 Adams 
+0

Это один столбец или 3 столбца? – gbn 2010-12-10 14:07:41

ответ

3

попробовать это в SQL Server:

DECLARE @String varchar(50) 
SET @String='0002 55 Actor Hill - 0002' 
SELECT LEFT(@String,CHARINDEX(' - ',@String)-1) 

ВЫВОД:

-------------------------------------------------- 
0002 55 Actor Hill 

(1 row(s) affected) 

здесь приведен пример использования таблицы:

DECLARE @YourTable table (RowValue varchar(50)) 
INSERT @YourTable VALUES ('0002 55 Actor Hill - 0002') 
INSERT @YourTable VALUES ('0004 57 Adair - 0004') 
INSERT @YourTable VALUES ('0005 74 Adams - 0005') 

SELECT 
    LEFT(RowValue,CHARINDEX(' - ',RowValue)-1), '|'+LEFT(RowValue,CHARINDEX(' - ',RowValue)-1)+'|' 
    FROM @YourTable 

ВЫВОД:

-------------------- --------------------- 
0002 55 Actor Hill |0002 55 Actor Hill| 
0004 57 Adair  |0004 57 Adair| 
0005 74 Adams  |0005 74 Adams| 

(3 row(s) affected) 

Я использовал | символы, чтобы показать, нет завершающих пробелов

изменить фактические данные использование:

UPDATE @YourTable 
    SET RowValue=LEFT(RowValue,CHARINDEX(' - ',RowValue)-1) 
+0

Я снял «-1» с заявления об обновлении, и это сработало! Благодаря!!! – Spidermain50 2010-12-10 14:06:28

0

Предполагая, что содержание 1-го столбца, что вы хотите, чтобы удалить из последнего столбца

UPDATE 
    Mytable 
SET 
    StringField3 = REPLACE(StringField3, ' - ' + NumberLikeField1, '') 

This пути, вы не имеете беспокоиться о значениях, как

00007 99 Saxa-Cotburg-Gotha - 00007 
Смежные вопросы