在sql中查找字符串长度而不是从零开始

Mer*_*Joe 3 sql-server csv sql-server-2008

我有一个问题,我正在从excel(.csv)文件上传员工代码和帐号,我将检查员工代码并更新或插入相应员工代码的帐号.但是如果员工代码以"0"开头,则csv文件不会考虑0并且只发送剩余的字符,所以当我在sql中检查它时将与表数据(Employee Code)不匹配.

我有计划匹配他们,但我不知道该怎么做.

我试过下面的查询

declare @EmployeeCodeNET varchar(max)='MJ300'; 
declare @EmployeeCodeDB varchar(max)='00MJ300';


select LTRIM(REPLACE(@EmployeeCodeDB, '0', ''))--It should return 'MJ300'
Run Code Online (Sandbox Code Playgroud)

Dam*_*ver 5

如果没有预期的空间,那么就有接近你尝试过什么是你需要的东西:

declare @EmployeeCodeDB varchar(max)='00MJ300';

select REPLACE(LTRIM(REPLACE(@EmployeeCodeDB, '0', ' ')),' ','0')
Run Code Online (Sandbox Code Playgroud)

也就是说,0用空格替换所有s,然后(LTRIM)删除所有前导空格,然后用0s 替换所有空格(这样,所有0未处于领先位置的原始s都被还原)

结果:

MJ300
Run Code Online (Sandbox Code Playgroud)

如果你的字符串中可能存在空格并且它们不是必需的,但它们不应该神奇地变成0s,那么你可以用@EmployeeCodeDB另一个替换替换内部:REPLACE(@EmployeeCodeDB,' ','')