我有一个表示批号商品的字符串,例如" 0000AZA001B"。我只需要" AZA001B"部分。我怎样才能在SQL Compact中实现它?
答案 0 :(得分:1)
使用以下语法修剪未知数量的前导零:
SELECT REPLACE(LTRIM(REPLACE(BatchNumber, '0', ' ')), ' ', '0')
这将使用空格替换字符串中的所有零,使用LTRIM
函数修剪前导空格并将空格转换回零。
答案 1 :(得分:1)
有很多方法可以做到这一点..检查这个例子和链接。
declare @str varchar(50) = '0000AZA001B'
select
@str ,
substring(@str, patindex('%[^0]%',@str), 10),
REPLACE(LTRIM(REPLACE(@str, '0', ' ')), ' ', '0')
Removing leading zeroes from a field in a SQL statement
http://sqlmag.com/t-sql/trimming-leading-zeros
更新为SQL Compact版本 试试这个:
select CONVERT(BIGINT, REPLACE(LTRIM(REPLACE('000000000011070876', '0', ' ')), ' ', '0'))
Convert from string with leading zeros to bigint in SQL Server CE isn't working
仍然需要进一步分析,你可以下载这个工具: - https://sqlcequery.codeplex.com/