我用this已经有一段时间了:

SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))

然而最近,我发现所有"0"字符的列都有一个问题,比如"00000000",因为它从未找到一个非"0"字符来匹配.

我见过的另一种方法是使用TRIM:

REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')

如果存在嵌入的空格,则会出现问题,因为当这些空格变回"0"时,它们将变为"0".

我试图避免标量UDF.我在SQLServer2005中发现了很多UDF的性能问题.

推荐答案

SUBSTRING(str_col, PATINDEX('%[^0]%', str_col+'.'), LEN(str_col))

Sql相关问答推荐

平均SQL

Oracle SQL中的累计总数

Microsoft Access UNION将长文本字段限制为255个字符

从2个表中查找每条记录的唯一最接近的日期匹配

我如何计算字母a出现的字符串的次数?

如何在联接条件不匹配时按日期获取上一条记录

在请求结束之前,PostgreSQL不会考虑使用中的删除

没有循环的SQL更新多个XML node 值

SQL -滞后于上一个非重复值

判断序列索引处的序列是否完整

属于(日期)范围类型及其交集的总权重​

如果另一个表中不存在值列,则插入失败

如何使用jsonn_populate_record()插入到包含IDENTITY列的表中

使用 XML 作为 SQL 表

仅当 SQL Server 中的表为开时,才在存储过程中使用更改跟踪

给定 3 个键列,从一个表中 Select 另一表中不存在的所有数据

如何通过CROSS APPLY获取多级嵌套JSON属性的值?

oracle中多行的跨日期范围的交集

在 PostgreSQL 中使用重音敏感排序进行重音不敏感搜索

在给定列中具有特定值的行与 SQL 中的总行数的比率