mysql - 使用SQL将varchars转换为两点十进制值

标签 mysql sql decimal sql-function

我有一个包含以下金额列表的平面文件,您能否告诉我,如何将下面的金额列表转换为两点十进制值,例如 1234567.80,以 {,A,H,E,C 结尾,I,F 通过使用 SQL?

12345678{
00484326A
00000210H
00000185A
00000077E
00000833C
00000255I
00000077E
00000039F
00000088A
00000000F
00000000A
00000100{  

谢谢,

最佳答案

试试这个 with this SQLfiddle 。不太漂亮,但可以用

SELECT 
    CAST(
        CONCAT(SUBSTRING(test_value,1, LENGTH(test_value) -2),
               '.',
               SUBSTRING(test_value, LENGTH(test_value) -1, 1))
    AS DECIMAL(7,1))
FROM TEST
WHERE SUBSTRING(test_value, LENGTH(test_value)) = 'A' 
|| SUBSTRING(test_value, LENGTH(test_value)) = 'H'
-- keep adding above line for the rest of the ending characters you want

关于mysql - 使用SQL将varchars转换为两点十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19307455/

相关文章:

php - wampserver drupal phpinfo 始终显示

SQL 连接表 - 每个 'on' 匹配字段连接表上的多行合并为一行?

mysql - SQL 语法错误

java - 科学记数法转十进制

c++ - 小数到任何基数 <17 计算器 c++

mysql - .local(drv, ...) 中的错误 : Failed to connect to database: Error: Unknown database 'database1'

sql - MySQL:选择未标记的页面?

c++ - 将 ASCII 字符串转换为十进制和十六进制表示形式

mysql - 无法将数据插入数据库

sql - 使用 pl sql 将 xml 文件解析为 2 个 oracle header-detail 表