在数字字符串中查找第一个非零值

Tay*_* K. 4 sql t-sql sql-server string

我有一个char(12)包含以下数据的列:

000000004012
000000615737
000000000012
000000000100
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为:

4012
615737
12
100
Run Code Online (Sandbox Code Playgroud)

我最初的想法是使用字符串操作,例如CHARINDEX.但是,我需要在第一次出现时从左到右进行搜索NOT 0.如何在SQL Server中完成此操作?

Joh*_*Woo 11

顺便问一下,为什么要存储数据char呢?但要回答你的问题,试试这个,

SELECT CAST(colName AS INT)
Run Code Online (Sandbox Code Playgroud)

要么

SELECT CAST('999999999999' AS NUMERIC(12,0))
Run Code Online (Sandbox Code Playgroud)

SQLFiddle演示

  • +1但我永远不会在没有指示精度和比例的情况下施放数字. (3认同)