【问题标题】:How to split price column by dot in sql into 2 columns?如何将sql中的价格列按点拆分为2列?
【发布时间】:2021-01-30 00:17:30
【问题描述】:

书名、作者、价格。价格就像“56.23”。我需要将其分成 2 列 - 美元、美分。

select author, title , substring(price, '.') from book

不工作

【问题讨论】:

  • 使用SUBSTRING_INDEX()
  • 我们敢问为什么吗? :-(

标签: mysql sql csv


【解决方案1】:

使用函数FLOOR() 获取不带小数部分的数字。然后从数字中减去它得到分数。

SELECT author, title, FLOOR(price) AS dollars, 100 * (price - FLOOR(price)) AS cents
FROM book

【讨论】:

  • (price - FLOOR(price))*100 AS cents
【解决方案2】:

这是一种方法:

SELECT autho, title, 
    SUBSTRING_INDEX(price, '.', 1) as dollars, 
    SUBSTRING_INDEX(price, '.', -1) as cents
FROM book

以 123.45 美元为例:

SELECT SUBSTRING_INDEX(123.45, '.', 1) as dollars, SUBSTRING_INDEX(123.45, '.', -1) as cents;
+-----------+---------+
|   dollars |   cents |
|-----------+---------|
|       123 |      45 |
+-----------+---------+
1 row in set
Time: 0.002s

【讨论】:

  • @Strawberry 你说得对,我改写了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 2019-12-09
  • 1970-01-01
相关资源
最近更新 更多