细分一个字符串并使用子字符串作为分数组件

时间:2014-04-14 08:47:05

标签: mysql database

我试图从mySQL查询中返回一组字符串值。然后在' /'字符(它们都包含在内)。最后在' /'之前划分值。字符,由其后面的值组成。

我尝试将SUBSTRING转换为INT和几个DECIMAL变体。任何帮助都感激不尽。

        "
        CAST(
            CAST(
                SUBSTRING(
                    customerfeedback.total_score, 
                    0, LOCATE('/', table.column_a-1)
                )AS DECIMAL(6,3)
            )
            /
            CAST(
                SUBSTRING(
                    customerfeedback.total_score,
                    LOCATE('/', table.column_a+1), LENGTH(table.column_a)
                )AS DECIMAL(6,3)
            )
            AS DECIMAL(6,3)
        )
        "

1 个答案:

答案 0 :(得分:0)

使用substring_index提取分子和分母部分并在分区中使用它们。

示例

select 
  @str:='225/12', 
  @n:=substring_index( @str, '/', 1 ) numerator, 
  @d:=substring_index( @str, '/', -1 ) denominator, 
  @n/@d quotient;

以上示例的结果

+----------------+-----------+-------------+----------+
| @str:='225/12' | numerator | denominator | quotient |
+----------------+-----------+-------------+----------+
| 225/12         | 225       | 12          |    18.75 |
+----------------+-----------+-------------+----------+

您可以根据需要投射或舍入商数。