我在 IBM db2 数据库中有一个 NUMERIC(5, 0) 字段,我只想要前 4 位数字。使用 CAST 无法实现我想要的效果。
如何在不转换为 String 和使用 substring 的情况下在 SQL 中实现这一点?
例如:13525 --> 1352
谢谢你的帮助!
为什么不转换为字符串并使用子字符串?
你也可以这样做:
select (case when field >= 10000 then floor(field / 10) else field end)
Run Code Online (Sandbox Code Playgroud)
这假设如果该字段具有1234,那么您想要1234而不是0123。
编辑:
您还可以通过两次调用来使用字符串cast():
select cast(left(cast(field as varchar(5)), 4) as numeric(4, 0))
Run Code Online (Sandbox Code Playgroud)
我还应该注意到,在许多数据库中,您可以这样做:
select left(field, 4)
Run Code Online (Sandbox Code Playgroud)
并且数据库将进行适当的转换。我附近没有 DB2 来检查这个。
| 归档时间: |
|
| 查看次数: |
2400 次 |
| 最近记录: |