2009-06-11 1 views

Odpowiedz

46

Odbywa się to za pomocą funkcji REPLACE

rozebrać się "someString" z "SomeColumn" w "SomeTable" w zapytaniu SELECT:

SELECT REPLACE([SomeColumn],'somestring','') AS [SomeColumn] FROM [SomeTable] 

zaktualizować tabelę i taśmy z „someString "z«SomeColumn»w«SomeTable»

UPDATE [SomeTable] SET [SomeColumn] = REPLACE([SomeColumn], 'somestring', '') 
8

Użyj funkcji „Replace” ciąg na kolumnie w pytaniu:

UPDATE (yourTable) 
SET YourColumn = REPLACE(YourColumn, '*', '') 
WHERE (your conditions) 

zastąpić „*” z charakterem chcesz rozebrać się i określ WHERE aby dopasować wiersze, które chcesz zastosować aktualizacja do.

Oczywiście, można również użyć funkcji REPLACE - jak pokazał inny odpytywacz - w instrukcji SELECT - z twojego pytania zakładałem, że próbujesz zaktualizować tabelę.

Marc

6

Spójrz na następującą funkcją - replace():

select replace(DataColumn, StringToReplace, NewStringValue) 

//example to replace the s in test with the number 1 
select replace('test', 's', '1') 
//yields te1t 

http://msdn.microsoft.com/en-us/library/ms186862.aspx

EDIT
Jeśli chcesz usunąć łańcuch, wystarczy użyć funkcji replace z pustym łańcuchem jako t on trzeci parametr jak:

select replace(DataColumn, 'StringToRemove', '') 
+0

SQLServer wykorzystuje apostrofów zamiast cudzysłowów – ichiban

+0

@ichiban - mam nadzieję, że nadal jest someth Poprawki SQL. Byłoby miło, gdyby to było spójne, biorąc pod uwagę, że pojedynczy cytat może skomentować kod VB ... Edytowałem post. Dzięki! – RSolberg

4
UPDATE [TableName] 
SET [ColumnName] = Replace([ColumnName], '[StringToRemove]', '[Replacement]') 

W instancji byłoby

UPDATE [TableName] 
SET [ColumnName] = Replace([ColumnName], '[StringToRemove]', '') 

Ponieważ nie ma zastępcza (chcesz się go pozbyć).

To będzie działać w każdym wierszu określonej tabeli. Nie ma potrzeby stosowania klauzuli WHERE, chyba że chcesz podać tylko określone wiersze.