MYSQL 查询,关于 CONCAT

标签 mysql database concatenation

这是我的查询

SELECT PART_NUM,DESCRIPTION, CONCAT('$',(ON_HAND*PRICE)) AS ON_HAND_VALUE
FROM part WHERE CLASS ='AP'

但是当我尝试查询它时,我的答案将始终等于 $0,就像 (ON_HAND*PRICE) 不起作用

这些是值:

Microwave Oven == 32*$165
GAS RANGE == 8*495
DISHWASHER ==8*595
DRYER ==12*349.95
WASHER ==128399.99

这一定是结果:

PART_NUM----DESCRIPTION ---------ON_HAND_VALUE
CD52 -----------MICROWAVE OVEN----$5280
DR93----------- GAS RANGE-----------    $3960
KT03----------- DISHWASHER-----------   $4760
KL62----------- DRYER-----------    $41994.4
DW11----------- WASHER-----------   $4799.88

最佳答案

根据您的评论,这不起作用的原因是 (On_Hand*price) 的结果是错误的(您将数字与字符串相乘)

另一方面,如果 on_hand 是 int价格是 decimal/double/float那么你可以使用以下命令得到正确的结果:

CONCAT('$',convert(ON_HAND*PRICE,char))

如果价格是 varchar我强烈建议将其存储为 decimal在继续之前。如果您将价格存储为varchar,您遇到的这个问题只是您将遇到的麻烦的开始。 s。

如果这是不可能的,那么您可以查看 Cast() 函数来首先转换您的 varchar作为decimalfloat在执行乘法之前。

编辑:

MySQL 似乎足够聪明,可以将 varchar 本身转换为 float ,但是当 varchar 字段中有“$”符号时,它就无法工作。

所以也许可以尝试执行以下操作:

CONCAT('$',convert(ON_HAND*Right(PRICE,Length(Price)-1),char))

关于MYSQL 查询,关于 CONCAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475060/

相关文章:

Python Pandas - 发出连续多索引数据帧

mysql - 如何在 mySQL Workbench 中运行 sql 脚本?

java - Camunda - 数据库快速增长问题

database - 我应该创建两个表来存储对象的具体信息吗?

mysql - Sum 函数仅返回一层层次结构

带有 CONCAT 和 DATE_FORMAT 的 MySQL IF

php - 实体关系

php - 我想按 1 2 3 4 1 2 3 4 的顺序对我的 CatId 进行排序,但有一个问题,如果 catid 相同,它首先检查 allocationId 最后 14 位数字

mysql - 大型数据集的最佳数据库引擎

MYSQL 连接列而不分组