gpt4 book ai didi

sql - Oracle函数以无序方式比较字符串

转载 作者:行者123 更新时间:2023-12-04 13:46:30 24 4
gpt4 key购买 nike

我需要一个函数来比较两个字符串而不考虑 oracle 中的顺序。
即“asd”和“sad”应该被认为是平等的。
有没有类似的功能?或者我需要编写自己的函数?

最佳答案

这可以通过一个简单的 java 函数来完成,以按字母顺序对字符串的字符进行排序:

CREATE AND COMPILE JAVA SOURCE NAMED SORTSTRING AS
public class SortString {
public static String sort( final String value )
{
final char[] chars = value.toCharArray();
java.util.Arrays.sort( chars );
return new String( chars );
}
};
/

然后您可以创建一个 PL/SQL 函数来调用:
CREATE FUNCTION SORTSTRING( in_value IN VARCHAR2 ) RETURN VARCHAR2
AS LANGUAGE JAVA NAME 'SortString.sort( java.lang.String ) return java.lang.String';
/

然后你可以对排序后的字符串做一个简单的比较:
SELECT CASE
WHEN SORTSTRING( 'ads' ) = SORTSTRING( 'das' )
THEN 'Equal'
ELSE 'Not Equal'
END
FROM DUAL;

关于sql - Oracle函数以无序方式比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49172423/

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