Вопрос по sql-server-2008, tsql – Удалить один символ из поля varchar SQL Server 2008

14

У меня есть стол с несколькимиvarchar столбцы, которые почти идентичны первичным ключам в другой таблице, за исключением точки (.). Я посмотрел наreplace функция в T-SQL, но первый аргумент не является выражением. Как я могу удалить все вхождения конкретного символа с SQL? Кажется, что правильный ответ может быть заменить на строку нулевой длины. Это близко?

Для тех, кто считал, что вопрос не требует исследовательских усилий, это было главным образом из-за неправильного понимания самой документации.

Я взял в качестве значения ms_dn документации string_expression то, что это должен быть строковый литерал, главным образом потому, что в приведенных примерах не было столбца. Благодарю. wootscootinboogie
На какую документацию вы смотрите? Первый параметр дляREPLACE является строковым выражением. Oded
Возможно, вам следовало прочитать описаниеexpression... Oded
увидетьReplace фн вmsdn.microsoft.com/en-us/library/ms186862.aspx Gerrat
@ Возможно, их смущает тот факт, что в документах MSDN написано string_expression Taryn♦

Ваш Ответ

3   ответа
6
update your_table
set some_column = replace(some_column, '.', '')
42

Вы можете обновить таблицу напрямую, используяREPLACE по значениям столбца:

UPDATE myTable
SET myColumn = REPLACE(myColumn, '.', '')
6

Вы хотите удалить все экземпляры. из строки? Если это так, вы были правыREPLACE:

DECLARE @Example TABLE
(
    Value VARCHAR(100)
)
INSERT @Example (Value)
VALUES ('Test.Value'), ('An.otherT.est')

SELECT
    REPLACE(Value, '.', '')
FROM
    @Example

-- Replace only the first '.'
SELECT
    STUFF(Value, CHARINDEX('.', Value, 0), 1, '')
FROM
    @Example

Изменить, сделав пример немного более полезным, так как я все равно поиграл с ним, я мог бы также опубликовать пример. :)

Похожие вопросы