相关疑难解决方法(0)

更好的修剪SQL Server中前导零的技术?

我一直在使用一段时间:

SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))
Run Code Online (Sandbox Code Playgroud)

但是最近,我发现所有"0"字符的列都有问题,例如'00000000',因为它永远找不到匹配的非"0"字符.

我见过的另一种技术是使用TRIM:

REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')
Run Code Online (Sandbox Code Playgroud)

如果存在嵌入空格,则会出现问题,因为当空格变回"0"时,它们将变为"0".

我试图避免使用标量UDF.我在SQL Server 2005中发现了很多UDF的性能问题.

sql t-sql sql-server string sql-server-2005

150
推荐指数
5
解决办法
24万
查看次数

从 SQL Server 2008 R2 中的字符串中删除前导零

我有一个代表货物批次号的字符串,例如“0000AZA001B”。我只需要“AZA001B”部分。如何在 SQL Compact 中实现这一点?

sql-server string sql-server-ce

3
推荐指数
1
解决办法
2万
查看次数

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

我有一个问题,我正在从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)

sql-server csv sql-server-2008

3
推荐指数
1
解决办法
804
查看次数

我需要删除列中所有前导 0

这就是我想使用的查询。我认为更容易看看它并看看我哪里错了:

UPDATE * FROM 'catalog_product_entity_varchar' 
SET TRIM(LEADING '0' FROM 'value') 
WHERE 'attribute_id' = '176';
Run Code Online (Sandbox Code Playgroud)

因此,在我的表中,有很多 attribute_id = 176 的行,并且“value”列有很多前导 0。当 attribute_id 为 176 时,我想从值中删除所有前导 0。

这有点超出我的范围,但它似乎比尝试更新任何其他方式更快。

mysql sql trim

0
推荐指数
1
解决办法
3063
查看次数