获取放置在SQL中的字符串

获取放置在SQL中的字符串,sql,Sql,我想知道如何获取数字大于0的字符位置: e、 g.结果为1 e、 g.30001结果为3 e、 结果是2 在任何数据库中,您都可以使用以下内容: select substring(cast(cast(col as int) as varchar(255)), 1, 1) 其思想是将其转换为一个数字,然后再转换回一个字符串——这将删除前导零 所有这些函数在所有数据库中都可用,尽管名称可能不同 另一种不需要转换的方法是: select substring(replace(col, '0', ''

我想知道如何获取数字大于0的字符位置:

  • e、 g.结果为1
  • e、 g.30001结果为3
  • e、 结果是2

在任何数据库中,您都可以使用以下内容:

select substring(cast(cast(col as int) as varchar(255)), 1, 1)
其思想是将其转换为一个数字,然后再转换回一个字符串——这将删除前导零

所有这些函数在所有数据库中都可用,尽管名称可能不同

另一种不需要转换的方法是:

select substring(replace(col, '0', ''), 1, 1)
在特定数据库中可能有更好的方法(您尚未指定)。

ANSI SQL答案:

select substring(trim('0' from columnname) from 1 for 1) from tablename
这是一种方式

DECLARE @val VARCHAR(10)
SELECT @val = '0002003'

SELECT LEFT(CAST(CAST(@val AS BIGINT) AS VARCHAR(10)),1)

您使用的是哪种DBMS产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。