В SQL, как я могу удалить первые 4 символа значений определенного столбца в таблице? Имя столбца Student Code
и пример значения ABCD123Stu1231
. Я хочу удалить первые 4 символа из моей таблицы для всех записей
Пожалуйста, ведите меня
источник
В SQL, как я могу удалить первые 4 символа значений определенного столбца в таблице? Имя столбца Student Code
и пример значения ABCD123Stu1231
. Я хочу удалить первые 4 символа из моей таблицы для всех записей
Пожалуйста, ведите меня
SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn
Редактировать: Для объяснения, RIGHT принимает 2 аргумента - строку (или столбец), с которой нужно работать, и количество возвращаемых символов (начиная с «правой» части строки). LEN возвращает длину данных столбца, и мы вычитаем четыре, так что наша функция RIGHT оставляет 4 крайних левых символа «позади».
Надеюсь, это имеет смысл.
Отредактируйте снова - я только что прочитал ответ Эндрю, и он вполне мог правильно интерпретировать, и я могу ошибаться. Если это так (и вы хотите ОБНОВИТЬ таблицу, а не просто возвращать поддающиеся проверке результаты), вы можете сделать это:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4)
Он находится на правильном пути, но его решение будет сохранять 4 символа в начале строки, а не отбрасывать указанные 4 символа.
COL_LENGTH('MyTable', 'MyColumn')
вместо,LEN(MyColumn)
потому что в моем случае я хотел исключить первые n символов независимо от размера фактического содержимого в столбце, но это работало хорошо, кроме этого!Это говорит, начиная с первой
1
позиции символа, заменить4
символы ничем''
источник
someColumn
это что-то сложное, например, отбор из CTE или что-то в этом роде, это не требует его оценки дважды.Зачем использовать LEN, чтобы у вас было 2 строковые функции? Все, что вам нужно, это персонаж 5 на ...
источник
Попробуй это:
источник
Вот простой макет того, что вы пытаетесь сделать :)
Итак, используйте последнее утверждение для поля, которое вы хотите обрезать :)
Функция SUBSTRING отключает Code1, начиная с символа FIFTH и продолжая в течение длины CODE1 минус 4 (количество символов, пропущенных в начале).
источник
Полная вещь
источник
Вы также можете сделать это в SQL ..
синтаксис
источник
Попробуй это. 100% работает
источник
Верхний ответ не подходит, если значения могут иметь длину меньше 4.
В T-SQL
Вы получите «Неверный параметр длины, переданный правильной функции», потому что он не принимает отрицательные значения. Используйте оператор CASE:
В Postgres
Значения меньше 4 дают удивительное поведение ниже вместо ошибки, потому что передача отрицательных значений в ПРАВО обрезает первые символы вместо всей строки.
RIGHT(MyColumn, -5)
Вместо этого имеет больше смысла .Пример сравнения того, что вы получаете, когда используете верхний ответ «длина - 5» вместо «-5»:
источник
Есть встроенная функция обрезки, которая идеально подходит для этой цели.
http://www.postgresql.org/docs/8.1/static/functions-string.html
источник
Было бы хорошо поделиться, для использования DB2:
INSERT(someColumn, 1, 4, '')
Stuff
не поддерживается в DB2источник
Если вам нужно удалить первые несколько символов, которым предшествует специальный символ, например
#
, это хороший вариант:источник