使用T-SQL删除列中的无关字符

时间:2011-05-12 19:39:08

标签: sql sql-server tsql

我正在尝试从主键列中的数据中删除无关字符。此列中的数据用作控件号,而额外字符阻止Web应用程序有效地与数据交互。

例如,一行可能如下所示:

ocm03204415 820302

我想删除空格后的所有内容......所以字符'820302'。我可以手动执行此操作,但是,大约有2,000条记录在列中具有这些额外值。如果我能以编程方式删除它们会很棒。我不能做一个简单的替换,因为字符没有模式......我无法定义规则来发现它们......唯一统一的是空间......虽然,现在我看一下数据集,他们都是从8开始。

有没有办法可以通过编程方式删除这些字符?我熟悉Oracle环境中的PL / SQL,并想知道Transactional SQL是否会在MS-SQL环境中提供一些可能性?

非常感谢。

2 个答案:

答案 0 :(得分:4)

您可能需要查看CHARINDEX函数以查找空间。然后,您可以使用SUBSTRING在单个UPDATE语句中获取所有内容。

答案 1 :(得分:3)

试试这个:

UPDATE YourTable
SET YourColumn = LEFT(YourColumn,CHARINDEX(' ',YourColumn)-1)
WHERE CHARINDEX(' ',YourColumn) > 1