【问题标题】:Remove white space between words in interbase删除interbase中单词​​之间的空格
【发布时间】:2012-05-29 06:43:36
【问题描述】:

我需要删除 interbase 中“单词”之间的所有空格。来自 SQL 服务器背景,我假设(错误地)interbase 将支持替换功能,但显然不支持。因此,给定一个可能包含或不包含空格的电话号码,例如 0117 565 464,我如何将它与没有空格的输入字符串匹配?

编辑以下 cmets,它是 Interbase XE,当我尝试使用替换时出现“未知函数替换”错误

【问题讨论】:

  • 您使用什么版本的 Interbase / Firebird?根据 Firebird 文档,2.1 版和更新版本支持 REPLACE
  • 我以为你说的是​​ Interbase。我在 Interbase 版本 10 中没有看到任何 REPLACE 语句。

标签: sql interbase


【解决方案1】:

Interbase 支持用户定义函数 (UDF),它是包含在 DLL 中的外部编程函数。 Interbase 产品中包含许多 UDF,但没有一个可以删除空白(或短划线)。但是,您可以自己编写并添加它。然后你就可以像在 Interbase 中使用 SQL 语句一样使用它了。

【讨论】:

  • 听起来很酷,你用什么语言编写函数?我可以使用 c# 吗?
  • UDF 都在一个或多个 DLL 中,并且可以用任何能够创建适当 dll 的语言编写。我用德尔福写我的。 Interbase 包含的那些是用 C 的某些变体编写的。当然,它必须能够在您打算运行的平台上运行。然后您只需将 UDF 和参数定义到 Interbase。而且,是的,这很酷。