Функция SQL Server Right () для удаления символов из определенной точки столбца - PullRequest
1 голос
/ 10 декабря 2010

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

Пример ...

ДО:

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

ПОСЛЕ:

0002    55  Actor Hill 
0004    57  Adair 
0005    74  Adams 

Ответы [ 2 ]

3 голосов
/ 10 декабря 2010

попробуйте это в 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 голосов
/ 10 декабря 2010

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

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

Таким образом, вам не нужно беспокоиться о таких значениях, как

00007    99  Saxa-Cotburg-Gotha - 00007
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...