仅当字符为 Firebird 2.5 上的数字时才转换为 Int

2023-11-24

我有一个在 MySQL 数据库上使用的查询,该查询对结果进行排序,在可能的情况下(当 char 字符串是数字时)将 char 数据库字段转换为整数,因此例如ORDER BY我在 MySQL 上使用的子句是:

ORDER BY
   CASE 
   WHEN CONVERT(charfield, SIGNED INTEGER) IS NOT NULL THEN
        CAST(charfield AS SIGNED INTEGER)  
   ELSE 9999999999 END

其中 charfield 是数据库字段字符 (25)。

我该如何翻译这个ORDER BYFirebird 2.5 的条款?


你可以使用SIMILAR TO运算符,即

ORDER BY
   CASE 
      WHEN charfield SIMILAR TO '[0-9]+' THEN CAST(charfield AS INTEGER) 
      ELSE 9999999 
   END

如果该字段有前导或尾随空格,那么您必须使用TRIM()函数在测试之前删除那些,即

WHEN TRIM(charfield) SIMILAR TO ...

为了允许负数,您必须修改模式以包含-,即该子句将变为

ORDER BY
   CASE 
      WHEN TRIM(charfield) SIMILAR TO '\-?[0-9]+' ESCAPE '\' THEN CAST(charfield AS INTEGER) 
      ELSE 9999999 
   END
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅当字符为 Firebird 2.5 上的数字时才转换为 Int 的相关文章

随机推荐

  • 在 CSS 中添加 target="_blank"

    我的网站顶部菜单中有外部链接 我想在新选项卡中打开这些链接 我可以使用它来实现它target blank在 HTML 中 是否有类似的 CSS 属性或其他属性 正如 c69 提到的 没有办法用纯 CSS 来做到这一点 但你可以使用 HTML
  • 使用变量定义 PHP 函数

    我想使用变量动态命名一些函数 如下所示 thing some function function thing echo hi 我知道我可以call使用这样的变量的函数 something function exists if somethi
  • 通过使用 Safari 更改 window.location 下载文件

    我有一个离线 html 文件 通过将 window location 设置为来生成并保存 CSV data text csv base64 Intfa2V5fSIsInt 但是 在 Safari 中 这只会在浏览器中显示 CSV 将网址设置
  • 真的对 javascript es6 箭头函数的“封闭范围”感到困惑

    我在网上做了很多研究 阅读了很多帖子 包括MDN等等 据我所知 对于传统定义的函数 函数中的 this 是由调用 调用它们的对象定义的 以及几种不同的情况 对象文字 新的构造函数 事件处理程序等 我知道对于箭头函数 this 是按词法定义的
  • 对大文本值进行小幅编辑时如何有效地使用 gettext PO 文件

    寻找有关如何在对大 msgid 值进行小编辑时有效使用 gettext PO 文件的提示和 或工具 示例 我们有大量多句子 多段落消息存储在 PO 消息目录文件中 如果我们对消息进行非常小的更改 也许是编辑单个句子 甚至更正标点符号 那么当
  • 在 Swift 中,如何从内存中完全删除 UIView?

    请考虑以下代码 class myManager var aView UIView func createView aView UIView func removeView aView nil anything else 如果我创建一个UIV
  • T-SQL:当长度 > VarChar(MAX) 时,如何比较 XML 类型的两个变量?

    仅使用 SQL Server 2008 R2 这将位于存储过程中 如何确定 XML 类型的两个变量是否等效 这是我想做的 DECLARE XmlA XML DECLARE XmlB XML SET XmlA Really long Xml
  • xdebug断点失败

    以通常的方式庆祝建立一个新的测试服务器 通过寻求帮助让 xdebug 工作 Server Ubuntu 服务器 16 10 Nginx PHP 7 Xdebug 设置的要求如下http php built com installing xd
  • 在水豚中选择具有多个类的元素

    我正在使用 Selenium 在 Capybara 中编写自动化代码 我的 HTML 中有以下元素 我想在水豚中单击该元素 a href class classA classB click me a 目前 工作方式如下 find class
  • 多重继承会导致虚假的、不明确的虚函数重载

    在这个例子中 类Foo and Bar由图书馆提供 我的课Baz继承两者 struct Foo void do stuff int int struct Bar virtual void do stuff float 0 struct Ba
  • .Net 的开源代理库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找一个开源的 Ne
  • 将 []byte 转换为小/大端有符号整数或浮点数?

    我能够转换 byte转换为无符号整数 a binary LittleEndian Uint16 sampleA b binary BigEndian Uint32 sampleB 这利用了 Go 包中的 Big Endian 和 Littl
  • 我应该关闭JNDI获取的数据源吗?

    更新 显然 Tomcat 从 7 0 11 开始 为您关闭了数据源 因此它在 web 应用程序的 contextDestroyed 中不可用 看 https issues apache org bugzilla show bug cgi i
  • objdump - head ELF - 标志的含义?

    objdump f a out a out file format elf32 i386 architecture i386 flags 0x00000112 EXEC P HAS SYMS D PAGED start address 0x
  • C# 中的流重用

    我一直在尝试一个我认为很简单的想法 我希望能够从某个地方 网站 文件系统 ftp 读取文件 对其执行一些操作 压缩 加密等 然后将其保存在某个地方 可能是文件系统 ftp 或其他任何地方 这是基本的管道设计 我想做的就是读入文件并将其放入
  • 仅通过存储过程强制 INSERT

    使用 SQL Server 2008 是否有一种方法允许仅通过存储过程插入表 如果可以 如何实现 EDIT 最好的方法可能是马丁 史密斯的建议 即使用代替插入扳机 这个问题的直接答案是 marc s 的 GRANT 和 DENY 答案 尽管
  • java中删除和重命名文件

    我在java中创建了一个文件 file1 我读取了该 file1 并对从 file1 读取的数据进行了一些更改 然后将新数据写入另一个文件 file2 现在我需要的是删除以前的文件 file1 并将文件 file2 的名称更改为 file1
  • 创建动态 html 表单

    我想创建一个动态变化的表单 我有一个用于创建项目的表单 包含以下字段 project name project description 并且该项目可以具有任意数量 大于或等于 0 的类别 我想要的是显示一个按钮 让用户可以选择添加另一个类别
  • 删除 Lucene.net 中的所有索引

    我想删除all之前创建的索引 我在用Lucene net 我尝试了以下方法 Term term new Term empty because I want to delete all the indices IndexReader rdr
  • 仅当字符为 Firebird 2.5 上的数字时才转换为 Int

    我有一个在 MySQL 数据库上使用的查询 该查询对结果进行排序 在可能的情况下 当 char 字符串是数字时 将 char 数据库字段转换为整数 因此例如ORDER BY我在 MySQL 上使用的子句是 ORDER BY CASE WHE