我在IBM db2数据库中有一个NUMERIC(5,0)字段,我只需要前4位数字。我还没有能够使用CAST实现我想要的目标。
如何在不使用字符串并使用子字符串?
的情况下在SQL中实现此目的Ex:13525 - > 1352
感谢您的帮助!
答案 0 :(得分:4)
为什么不将其转换为字符串并使用子字符串?
你也可以这样做:
select (case when field >= 10000 then floor(field / 10) else field end)
这假设如果字段包含1234
,那么您需要1234
而不是0123
。
编辑:
您还可以使用两次调用cast()
来使用字符串:
select cast(left(cast(field as varchar(5)), 4) as numeric(4, 0))
我还应该注意到,在许多数据库中,您可以这样做:
select left(field, 4)
,数据库将进行适当的转换。我附近没有DB2来检查这个。