寻找第一个非0字符的位置?解决方案

寻找第一个非0字符的位置?
例如:
select   charindex( '3 ', '000311 ')
可以查找第一个3的位置?
我的问题是如何找到第一个‘非0字符’的位置呢?

------解决方案--------------------
select patindex( '%[^0]% ', '000311 ')