sql - 仅当所有十进制值为 0 时才删除十进制值
问题描述
如果所有值都为零,我需要选择一个删除所有十进制值的列。
这是输入表的样子,MYCOLUMN 是一个 numeric(18,2) 类型的字段:
+--------+
|MYCOLUMN|
+--------+
|1.00 |
+--------+
|1.00 |
+--------+
|1.50 |
+--------+
|2.00 |
+--------+
|2.60 |
+--------+
这是我试图从我的选择中实现的目标:
+--------+
|MYRESULT|
+--------+
|1 |
+--------+
|1 |
+--------+
|1.50 |
+--------+
|2 |
+--------+
|2.60 |
+--------+
我尝试了一个简单的 CASE 语句,但不幸的是它似乎不起作用。
SELECT CASE WHEN MYCOLUMN % 1 <> 0 THEN MYCOLUMN ELSE CONVERT(INT, MYCOLUMN) END as MYRESULT
这些值都保留为十进制格式。
解决方案
要以不同的格式表示它,您需要转换为字符串。因此,您不妨这样做:
select replace(cast(col as varchar(255)), '.00', '')
推荐阅读
- c# - 使用 NEST(ElasticSearch) 搜索嵌套数组
- java - MongoDB Java Driver 的 ChangeStream 性能问题
- rust - 如何从 for 循环内的迭代器中获取多个值?
- javascript - 使用自定义非地理地图的传单
- python - 从不同数组形状的 tf.data.Dataset.from_generator() 创建一个 padded_batch
- r - 如何将向量更改为单个数字
- javascript - TypeError:无法读取未定义的属性“切换”-classList.toggle 反应
- javascript - 在 react js 中对数组进行更改后如何映射数组?
- python - Python - 字符串列表列表
- ruby-on-rails - 使用 groupdate gem Ruby on Rails 6 按周分组,从每月的第一天开始