0

只是寻找另一种方法来删除整个查询中的任何多余空格(> 1)。我正在从 Excel 电子表格中获取我的 Oracle 查询的信息,因此由于用户错误等原因肯定会有一些多余的零,因此当我从 excel 中获取信息时,它会在某些值之后有 2 个有时 3 个额外的空格所以当我们通过应用程序查询它时,我们不会得到任何从 Oracle 返回的记录。我试过 Trim(ds.Tables.Item(0).Rows.Item(k).Item(i).ToString.ToUpper) 但这并没有删除某些值中的额外空格。是否有一些我不知道的 SQL 语句或者 Trim 不起作用的其他原因?

编辑:正在错误地编写替换功能。

Original: string.Replace("  ", " ")
New: string = string.replace("  ", " ")
4

3 回答 3

1

改为使用String.Replace(" ", String.Empty)Trim只删除前导和尾随空格。

于 2013-10-08T14:32:19.717 回答
0

在 Oracle 方面,您可以使用该REGEXP_REPLACE函数,但您需要将其应用于要从中删除额外空格的每一列:

SELECT
  REGEXP_REPLACE(myCol1, ' {2,}', ' ') AS myCleanCol1,
  REGEXP_REPLACE(myCol2, ' {2,}', ' ') AS myCleanCol2,
FROM myTable

此处的示例查找所有出现的两个或多个空格(即第二个参数)并将它们替换为单个空格(第三个参数)。

于 2013-10-08T14:32:52.920 回答
0

您可以使用 REGEXP_REPLACE

可能是这样的:

regexp_replace(your_column, '\s{2,}', '')

这是一个 sqlfiddle 演示

于 2013-10-08T14:32:54.737 回答