mysql - 如何选择价格最高的商品?

标签 mysql sql oracle

如您所见,我正在使用 SQL Developer 并尝试从我的表中获取一些数据。

我正试图以最高价出售商品,但不知道如何管理它。 对于我正在尝试的价格

选择最大值(价格) 从价格

但当最大价格为 350 欧元时,我得到了 95 欧元的返回。

谁能帮我,我会得到最大的价格(来自表 Price)和商品名称(来自表 Item)?

编辑:如果对您有帮助的话,这是我的表格

INSERT INTO ITEM VALUES (1, 'Item one', 1);
INSERT INTO ITEM VALUES (2, 'Item two', 1);
INSERT INTO ITEM VALUES (3, 'Item three', 2);
INSERT INTO ITEM VALUES (4, 'Item four', 2);
INSERT INTO ITEM VALUES (5, 'Item five', 3);
INSERT INTO ITEM VALUES (6, 'Item six', 3);

/* CREATE TABLE ITEM(
ID INTEGER NOT NULL,
NAME VARCHAR2(30) NOT NULL,
TK_ORG INTEGER NOT NULL
); */

INSERT INTO PRICE VALUES (1, 'normal', '50 €', 1);
INSERT INTO PRICE VALUES (2, 'special offer', '45 €', 1);
INSERT INTO PRICE VALUES (3, 'normal', '80 €', 2);
INSERT INTO PRICE VALUES (4, 'special offer', '150 €', 2);
INSERT INTO PRICE VALUES (5, 'normal', '40 €', 3);
INSERT INTO PRICE VALUES (6, 'special offer', '25 €', 3);
INSERT INTO PRICE VALUES (7, 'normal', '70 €', 4);
INSERT INTO PRICE VALUES (8, 'special offer', '45 €', 4);
INSERT INTO PRICE VALUES (9, 'normal', '95 €', 5);
INSERT INTO PRICE VALUES (10, 'special offer', '320 €', 5);

/* CREATE TABLE PRICE(
ID INTEGER NOT NULL,
PRICE_TYPE VARCHAR2(50) NOT NULL,
PRICE VARCHAR2(10) NOT NULL,
TK_ITEM INTEGER NOT NULL
); */

最佳答案

您似乎将价格存储为字符串而不是数字。在 MySQL 中,您可以使用静默转换来获取您想要的内容:

SELECT MAX(price + 0)
FROM price;

在 Oracle 中,对于这个例子,你可以这样做:

SELECT MAX(to_number(replace(price, '€', '')))
FROM price;

尽管如果您有更多货币,正则表达式会更灵活。

关于mysql - 如何选择价格最高的商品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29672818/

相关文章:

java - 从 JBoss EAP 6 中的应用程序访问 Oracle 10g 时出错

php - 从 nodejs 向 php 发送请求时输入意外结束

mysql - 带有两个表的简单数据库应该是什么样子?

sql - 连接后 Rownum 顺序不正确 - SQL Server

php - 在 mysql 插入查询中选择 Max

java - 如何使用可变长度字符串标记列

oracle - IMPDP remap_schema 多个文件

javascript - JS Node 仅返回数字而不返回正确的值

php - 如何检查数据库中出现的单词?

asp.net - 网络机器人问题