嘿,我是一个java开发人员,所以我通常不会这样做,所以请耐心等待。
我的表中的列看起来像
Column
001 - test
012 - test 2
当我选择时,我需要这些值如下所示:
1
12
...
...
提前致谢
答案 0 :(得分:3)
您想要将前导数字转换为数字。我建议:
select cast(left(column, patindex('%[^0-9]%', column) as decimal(38))
我选择小数38是因为它是最大的精确数值(尽管int
似乎足以满足您的目的)。
您也可以通过删除初始零并将结果保留为字符串来执行此操作:
select stuff(left(column, patindex('%[^0-9]%', column),
1, patindex('%[^0]%', column) - 1, '')
而且,如果你知道总是三位数:
select cast(left(column, 3) as int)
和字符串:
select cast(cast(left(column, 3) as int) as varchar(3))