sql-server - 使用 MSSQL 从 varchar 中删除第一个前导 0

标签 sql-server tsql

如何从 varchar 中仅删除前 0 个字符?

例如“000303”==>“00303”

我尝试过没有成功,所有 0 字符都被删除了:

SELECT SUBSTRING('000303', PATINDEX('%[^0]%', '000303'),LEN('000303'));

谢谢

最佳答案

尝试使用STUFF函数

SELECT CASE WHEN LEFT('000303',1) = '0' THEN STUFF('000303',1,1,'') ELSE '000303' END

或使用RIGHT函数

SELECT CASE WHEN LEFT('000303',1) = '0' THEN RIGHT('000303', LEN('000303')-1) ELSE '000303' END

您还可以使用 LEFT('000303',1) = '0' check 来代替

charindex('0','000303') = 1

'000303' LIKE '0%' (ughai建议)

关于sql-server - 使用 MSSQL 从 varchar 中删除第一个前导 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489309/

相关文章:

sql-server - 删除重复行并保留一行

sql - SQL Server 中的 Trunc(sysdate)

sql - 将 MS Sql 结果设置为变量并重用它

c# - SqlConnection连接数据的替代方案是什么?

sql-server - 数据库图(ER 图/表格布局)在衡量某些事物的分布时会是什么样子?

sql - 使用 SQL,如何使用行自己的值来更新行?

sql - SQL 加权平均值

sql-server - 从 SQL Server 2008 发送批量电子邮件

Mysql dump 命令与 MS SQL Server 类似

sql-server - 参数@objname 不明确或声明的@objtype (INDEX) 错误