Удалить один символ из поля varchar SQL Server 2008

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

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

 wootscootinboogie07 июн. 2012 г., 21:39
Я взял в качестве значения ms_dn документации string_expression то, что это должен быть строковый литерал, главным образом потому, что в приведенных примерах не было столбца. Благодарю.
 Gerrat07 июн. 2012 г., 21:38
 Oded07 июн. 2012 г., 21:36
На какую документацию вы смотрите? Первый параметр дляREPLACE является строковым выражением.
 Oded07 июн. 2012 г., 21:40
Возможно, вам следовало прочитать описаниеexpression...
 Taryn♦07 июн. 2012 г., 21:39
@ Возможно, их смущает тот факт, что в документах MSDN написано string_expression

Ответы на вопрос(3)

update your_table
set some_column = replace(some_column, '.', '')
Решение Вопроса

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

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

Вы хотите удалить все экземпляры. из строки? Если это так, вы были правы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

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

Ваш ответ на вопрос