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)
如果没有预期的空间,那么就有接近你尝试过什么是你需要的东西:
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,' ','')