【发布时间】:2021-02-20 15:04:53
【问题描述】:
我在其他列中表示价格列,如下所示:
CREATE TABLE customer(
price VARCHAR(10) NOT NULL CHECK (INSTR(price, '.') = 0 OR (LENGTH(price) -
INSTR(price, '.') <= 2) AND
price NOT GLOB '*[^0-9.]*')
);
请注意,我的任务是设计一个价格列,其中最多允许有两位小数。
现在,当我想对表格进行排序并说使用返回 3 个最高价格时
SELECT * FROM Kunde ORDER BY Guthaben desc LIMIT 3;
发生字符串比较,6.00 正确地大于 23.00。
除了确保所有价格都以相同格式输入之外,还有其他解决方法吗?
感谢您考虑我的问题。
【问题讨论】:
-
您的 CHECK 约束错误:dbfiddle.uk/…
标签: sql sqlite sql-order-by decimal