SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn
Editar: Para explicar, RIGHT leva 2 argumentos - a string (ou coluna) para operar e o número de caracteres a serem retornados (começando no lado "direito" da string). LEN retorna o comprimento dos dados da coluna e subtraímos quatro para que nossa função DIREITA deixe os 4 caracteres mais à esquerda "para trás".
Espero que isso faça sentido.
Edite novamente - Acabei de ler a resposta de Andrew, e ele pode muito bem ter interferido corretamente, e posso estar enganado. Se for esse o caso (e você deseja atualizar a tabela em vez de apenas retornar resultados medicados), faça o seguinte:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4)
Ele está no caminho certo, mas sua solução manterá os 4 caracteres no início da sequência, em vez de descartar os 4 caracteres.
COL_LENGTH('MyTable', 'MyColumn')
vez de,LEN(MyColumn)
porque, no meu caso, queria excluir os primeiros n caracteres, independentemente do tamanho do conteúdo real da coluna, mas isso funcionou bem além disso!Isto diz que, começando com a
1
posição do primeiro caractere, substitua os4
caracteres por nada''
fonte
someColumn
é algo complexo como uma subseleção de um CTE ou algo assim, isso não requer avaliação duas vezes.Por que usar o LEN para ter duas funções de string? Tudo que você precisa é o personagem 5 ...
fonte
Tente o seguinte:
fonte
Aqui está uma maquete simples do que você está tentando fazer :)
Portanto, use a última declaração no campo que você deseja cortar :)
A função SUBSTRING elimina o Código1, iniciando no quinto caractere e continuando pelo comprimento de CODE1 menos 4 (o número de caracteres ignorados no início).
fonte
A coisa completa
fonte
Você também pode fazer isso no SQL ..
sintaxe
fonte
Tente isso. 100% trabalhando
fonte
A resposta principal não é adequada quando os valores podem ter um comprimento menor que 4.
Em T-SQL
Você receberá "Parâmetro de comprimento inválido passado para a função correta" porque não aceita negativos. Use uma instrução CASE:
No Postgres
Valores menores que 4 fornecem o comportamento surpreendente abaixo, em vez de um erro, porque passar valores negativos para RIGHT apara os primeiros caracteres em vez de toda a cadeia. Faz mais sentido usar em seu
RIGHT(MyColumn, -5)
lugar.Um exemplo comparando o que você obtém ao usar o "comprimento - 5" da resposta principal em vez de "-5":
fonte
Existe a função interna de corte que é perfeita para o efeito.
http://www.postgresql.org/docs/8.1/static/functions-string.html
fonte
Seria bom compartilhar, para o uso do DB2:
INSERT(someColumn, 1, 4, '')
Stuff
não é suportado no DB2fonte
Se você precisar remover os primeiros caracteres precedidos por um caractere especial
#
, este é um bom:fonte