删除SQL中的前导零
在处理真实世界的数据时,它通常是混乱和肮脏的。这意味着它可能包含不必要或无效的数据,这些数据可能会阻碍我们希望在其上执行的操作和任务。
您可能遇到的最常见的不干净数据之一是在数字或字符串数据中包含前导零的数据。当从外部源导入数据或使用自动数据收集技术时,可能会发生这种情况。
数据中的前导零可能会有问题,特别是在处理作为字符串存储的数值时。
在本指南中,我们将讨论可以用来删除SQL数据集中任何前导零的所有方法和技术。
示例数据设置
在深入研究应用程序和示例之前,让我们先设置一个基本数据集,这将有助于演示前导零的出现。
考虑一个雇员表,数据如下所示:
创建雇员表
EmployeeID VARCHAR (10)
);
插入员工(EmployeeID)值
(“00123”),
(“00456”),
(“00789”),
(“01012”),
(' 01567 ');
在本例中,员工ID为“varchar”类型。但是,这些值包含前导零。
让我们探索一下可以用来删除这些前导零的方法。
使用CAST函数
删除任何前导零的方法之一是将字符串转换为数字类型。我们可以使用CAST或CONVERT()这样的函数,如下例所示:
选择CAST(EmployeeID AS INT)作为employeeidwithoutzero
从员工;
这应该在支持cast()函数的数据库中自动工作。
但是,在MySQL等数据库中,可能需要将该函数移植到trim函数中,以实际删除前导零。然后,您可以将值转换为数值类型,如下面的示例所示:
SELECT CAST(TRIM(前导'0' FROM EmployeeID) AS SIGNED) AS employeeidwithoutzers
从员工;
结果输出如下:
使用LTRIM函数
可以用来删除前导零的最常见和最强大的方法是使用LTRIM()函数。这个函数允许我们删除给定字符串中的所有前导空白字符。
但是,它不允许我们指定要删除的特定字符。在本例中,可以通过从字符串中删除前导零来使用它。
示例如下:
SELECT LTRIM(EmployeeID, '0') AS EmployeeIDWithoutZeros
从员工;
这将从字符串中删除前导零字符。
结论
在本教程中,我们探讨了两种主要方法,可以用来从给定字符串/列中删除任何前导零字符。