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
1posición del primer personaje, reemplace los4caracteres con nada''fuente
someColumnes 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, '')Stuffno está soportado en DB2fuente
Si tiene que eliminar los primeros caracteres precedidos por un carácter especial como
#, este es uno bueno:fuente