Делюсь важной заметкой, которую я узнаю, работая над одной из моих задач.
У нас есть таблица, в которой есть столбец char(2) [для хранения разных знаков &, * и т. д.]
Мы извлекаем это значение и проверяем его на следующее условие:
if(strCharVal.equals("&")) { //Это условие никогда не будет выполнено, хотя мы сохранили в столбце ‘&’.
// он должен выполнить блок кода
}
Вот проблема! мы получаем strCharVal как "& " (пробел вместе с символом) вместо "&".
В конце концов мы нашли вещь,
CHAR(x)
создает столбец, в котором всегда хранится x символов, и дополняет данные пустыми пробелами.
Помните об этом при работе с типом char в базе данных MSSQL.
Чтобы попробовать это, вы можете создать таблицу и добавить столбец с типом char.
Теперь сохраните в нем любой символ, а оставшееся пространство будет заполнено пробелами, так что лучше выберите varchar!!