在SQL Server查询中删除前导0

时间:2019-12-05 21:03:13

标签: sql sql-server tsql

如何修剪assoc_userid中的前导0?

SELECT assoc_name
FROM table
WHERE assoc_userid= #arguments.op_id#

此列以前是assoc_id,其值应为1,2,3,4,5,..,091,101

现在assoc_userid的值是001,002,003,004,005,091,101

我尝试了WHERE Replace(Ltrim(Replace('assoc_userid', '0', ' ')), ' ', '0') = #arguments.op_id#

2 个答案:

答案 0 :(得分:4)

您可以将它们转换为数字并进行比较:

WHERE TRY_CONVERT(INT, assoc_userid) = TRY_CONVERT(INT, #arguments.op_id#)

答案 1 :(得分:0)

也许您可以使用patindex查找非零字符的索引,并使用子字符串获取所需的部分。 这是示例:

declare @input varchar(max)
select @input = '0000100'

select SUBSTRING(@input,PATINDEX('%[^0]%',@input),LEN(@input))