Como posso usar o Itrim/RTRIM para procurar e substituir espaços iniciais/finais?
estou a tentar limpar os espaços iniciais e finais de uma coluna NVARCAR(MAX) que está cheia de preços (usando NVARCAR devido à importação de dados de vários sistemas operativos com caracteres ímpares).
neste momento tenho um comando t-sql que pode remover os espaços iniciais/finais dos preços estáticos. No entanto, quando se trata de alavancar este mesmo comando para remover todos os preços, estou perplexo.
Aqui está o script estático que usei para remover um preço específico:UPDATE *tablename* set *columnname* = LTRIM(RTRIM(2.50)) WHERE cost = '2.50 ';
Eis o que tentei remover todos os espaços finais:
UPDATE *tablename* set *columnname* LIKE LTRIM(RTRIM('[.]')) WHERE cost LIKE '[.] ';
Também tentei diferentes variações do % para personagens aleatórios, mas neste momento estou a girar as rodas.
o que espero conseguir é executar um comando simples que retire todos os espaços iniciais e finais em cada célula desta coluna sem modificar nenhum dos dados actuais da coluna.
6 answers
Para remover espaços da esquerda/direita, use Itrim / RTRIM. O que você tinha
UPDATE *tablename*
SET *columnname* = LTRIM(RTRIM(*columnname*));
Teria funcionado em todas as linhas. Para minimizar atualizações se você não precisar atualizar, o código de atualização é inalterado, mas a expressão similar na cláusula onde teria sido
UPDATE [tablename]
SET [columnname] = LTRIM(RTRIM([columnname]))
WHERE 32 in (ASCII([columname]), ASCII(REVERSE([columname])));
Nota: 32 é o código ascii para o carácter espacial.
Para remover espaços... utilizar Itrim/rtrim Itrim (texto) RTRIM (texto) O parâmetro String que é passado para as funções pode ser um nome de coluna, uma variável, uma string literal ou a saída de uma função definida pelo usuário ou consulta escalar.
SELECT LTRIM(' spaces at start')
SELECT RTRIM(FirstName) FROM Customers
Leia mais: http://rockingshani.blogspot.com/p/sq.html#ixzz33SrLQ4Wi
Função LTrim e função RTrim :
- a função LTrim para remover os espaços iniciais e o RTrim função para remover os espaços finais de uma variável de texto.
-
Ele usa a função aparar para remover ambos os tipos de espaços .
select LTRIM(RTRIM(' SQL Server '))
Resultado:
SQL Server
SELECT RTRIM(' Author ') AS Name;
A saída será sem quaisquer espaços finais.
Nome ------ Autor
Eu entendo que esta pergunta é para o SQL server 2012, mas se o mesmo cenário para o SQL Server 2017 ou SQL Azure você pode usar o Trim diretamente como abaixo:
UPDATE *tablename*
SET *columnname* = trim(*columnname*);
A função LTrim para remover os espaços iniciais e a função RTrim para remover os espaços finais de uma variável de texto. Ele usa a função Trim para remover ambos os tipos de espaços e meios antes e depois de espaços de cadeia.
SELECCIONAR ITRIM(RTRIM (REVERSO ('PRÓXIMO NÍVEL EMPREGADO ')))