Вы должны изменить от типа VARCHAR на символ типа. Varchar всегда усекает пробелы, но оставляет левые пробелы ко всему пробелу, например, строку abc
с 2 пробелами. Вы также можете использовать тип text
для хранения цельной строки с пробелами.
TYPE VALUE
-------------------------
varchar(10) 'abc'
char(10) 'abc ' <----------- 3 chars abc + 7 spaces
text 'abc '
Ниже кода изменения столбца типа данных на символ (10)
alter table tst_table
modify col1 char(10) null
Как documentation сказал
Вы не можете изменить столбец либо текст или тип данных изображения.
Еще одно решение заключается в использовании reverse функции. Например у вас есть таблица tab
:
create table tab
(
var varchar(100)
)
и вставить данные должны быть:
insert into tab
select reverse('abc ')
если вы сделаете выбор
select var from tab
вы увидите данные
' cba'
so shou л.д. брать данные как этот
select reverse(var) from tab
Но это будет работать только для строк, как 'abc '
, но он не работает для строк ' abc'
и ' abc '
.
parado проблема в моем случае, что мне нужно одно пространство «abc», но есть данные, имеющие разную длину, например «abcdef», поэтому, если я преобразую столбец в char (6), результатом будет «abcdef», что приемлемо, но для abc wil be 'abc', и это очень плохо. У тебя есть решение? – Moudiz
@Moudiz Я думаю, что нет простого способа сделать это, почему вам нужно пространство после строки? Может быть, мы найдем другой путь? – Parado
@Moudiz Я добавил к моему описанию ответа типа 'text', пожалуйста, подумайте об этом. – Parado