У нас есть таблица базы данных, которая имеет ключи и значения, где значение может быть любым в поле varchar. Значения приведены для атрибутов об элементе, а один атрибут - цена.
Чтобы создать поле выбора для цен, я использовал функцию Max()
, чтобы найти наибольшее значение в столбце значений, который, похоже, работал.
Затем, когда мы получили цены свыше 100 фунтов стерлингов, они начали возвращаться как максимальное значение. Я понимаю, что это потому, что это строковое значение, а не числовое.
Путаница возникает при выполнении команды, подобной select max(value) from attributes where value > 100
, потому что теперь оператор распознает, что 101> 100, но 99 не так, возвращает 101 как максимальное значение, однако без предложения where value > 100
99 обрабатывается как> 101 Почему предложение> 100 работает как числовое сравнение, а максимальное - нет?
Есть ли причина, по которой это происходит?