SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn
Editar: Para explicar, DERECHA toma 2 argumentos: la cadena (o columna) para operar, y el número de caracteres para devolver (comenzando en el lado "derecho" de la cadena). LEN devuelve la longitud de los datos de la columna, y restamos cuatro para que nuestra función DERECHA deje los 4 caracteres más a la izquierda "detrás".
Espero que esto tenga sentido.
Edite de nuevo: acabo de leer la respuesta de Andrew, y es muy posible que haya interpretado correctamente, y podría estar equivocado. Si este es el caso (y desea ACTUALIZAR la tabla en lugar de simplemente devolver resultados alterados), puede hacer esto:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4)
Está en el camino correcto, pero su solución mantendrá los 4 caracteres al comienzo de la cadena, en lugar de descartar dichos 4 caracteres.
COL_LENGTH('MyTable', 'MyColumn')
lugar deLEN(MyColumn)
porque en mi caso quería excluir los primeros n caracteres sin importar el tamaño del contenido real dentro de la columna, ¡pero esto funcionó bien aparte de eso!Esto dice, comenzando con la
1
posición del primer personaje, reemplace los4
caracteres con nada''
fuente
someColumn
es algo complejo como una subselección de un CTE o algo, esto no requiere evaluarlo dos veces.¿Por qué usar LEN para tener 2 funciones de cadena? Todo lo que necesitas es el personaje 5 en ...
fuente
Prueba esto:
fuente
Aquí hay una simple maqueta de lo que estás tratando de hacer :)
Por lo tanto, use la última instrucción contra el campo que desea recortar :)
La función SUBSTRING recorta Code1, comenzando en el QUINTO carácter y continuando durante la longitud de CODE1 menos 4 (el número de caracteres omitidos al inicio).
fuente
Lo completo
fuente
También puede hacer esto en SQL.
sintaxis
fuente
Prueba esto. 100% trabajando
fuente
La respuesta principal no es adecuada cuando los valores pueden tener una longitud inferior a 4.
En T-SQL
Obtendrá "Parámetro de longitud no válido pasado a la función correcta" porque no acepta negativos. Use una declaración CASE:
En Postgres
Los valores inferiores a 4 dan el comportamiento sorprendente a continuación en lugar de un error, porque pasar valores negativos a DERECHA recorta los primeros caracteres en lugar de la cadena completa. Tiene más sentido usar
RIGHT(MyColumn, -5)
en su lugar.Un ejemplo que compara lo que obtienes cuando usas la "longitud - 5" de la respuesta superior en lugar de "-5":
fuente
Existe la función de recorte incorporada que es perfecta para este propósito.
http://www.postgresql.org/docs/8.1/static/functions-string.html
fuente
Sería bueno compartir, para el uso de DB2:
INSERT(someColumn, 1, 4, '')
Stuff
no está soportado en DB2fuente
Si tiene que eliminar los primeros caracteres precedidos por un carácter especial como
#
, este es uno bueno:fuente