应用场景 : 就是说如果数据库存的数字是字符串形式 无法进行大小排序 现在可以使用 CAST(字段名 AS datatype) 或者 CONVERT(字段名 , datatype) 函数 再结合ORDER BY的正序或者倒叙 进行排序
问题复现 : 并没有按照正序排序
第一种 :
SELECT storage_name AS 'text',storage_no AS 'value'
FROM base_storage
WHERE status=100101001
and del_flag=100102001
and factory_no='jidi01'
and wh_no ='CK01'
and reservoir_no ='KQ01'
and track_no='KD01'
ORDER BY CAST(`value` AS SIGNED) ASC
第二种 :
SELECT storage_name AS 'text',storage_no AS 'value'
FROM base_storage
WHERE status=100101001
and del_flag=100102001
and factory_no='jidi01'
and wh_no ='CK01'
and reservoir_no ='KQ01'
and track_no='KD01'
ORDER BY CAST(`value` AS SIGNED) ASC
结果展示 :
datatype参数取值
值 | 描述 |
---|---|
DATE | 将value转换成'YYYY-MM-DD'格式 |
DATETIME | 将value转换成'YYYY-MM-DD HH:MM:SS'格式 |
TIME | 将value转换成'HH:MM:SS'格式 |
CHAR | 将value转换成CHAR(固定长度的字符串)格式 |
SIGNED | 将value转换成INT(有符号的整数)格式 |
UNSIGNED | 将value转换成INT(无符号的整数)格式 |
DECIMAL | 将value转换成FLOAT(浮点数)格式 |
BINARY | 将value转换成二进制格式 |