gpt4 book ai didi

regex - 提取包含字段的行的 HQL 函数仅包含数字

转载 作者:行者123 更新时间:2023-12-04 21:43:42 25 4
gpt4 key购买 nike

我有一个小问题要揭露:

我想从一个实体中提取,假设它的名称为“CustomerDetail”,其中特定字段(代码)只有数字字符的所有行。

在 HQL 中不存在像 Sql Server 那样的 ISNUMERIC() 函数,以及应用正则表达式函数的可能性。

一个可能的解决方案如下:

SELECT C
FROM CustomerDetail C
WHERE C.code NOT LIKE '%A%'
AND C.code NOT LIKE '%B%'

等等重复这个条件整体alfabetical字母和特殊字符。

我认为这是一个糟糕的解决方案,性能水平低(LIKE 数量巨大)

拜托,你能给我一个更聪明的解决方案吗?

先感谢您

附言我的应用程序是多 DBMS,所以我不能使用 SQL 查询

最佳答案

主要编辑:
我的错,我把刚刚工作的函数 isNumeric() 误认为是错误的 HQL 函数。
根据doc HQL 支持数据库标量函数 - SQLServer(我在其上测试过)有一个 isNumeric() 函数。

我现在看到两个选项:

选项1:
您可以为不同的数据库编写不同的 HQL,这些数据库利用 SQLServer 上的 isNumeric() 等内置函数(但就“一次编写到处运行”而言,这是一个巨大的倒退)

选项 2:
为您希望与 SQL 中的自定义函数兼容的每个数据库编写代码,并在您的方言中使用相同的名称注册它。

我知道,这两个选项都不是很好,但我想不出任何其他方法来让它工作。

关于regex - 提取包含字段的行的 HQL 函数仅包含数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19292168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com