私はオラクルDBを使用しています。と の 2 つのフィールドがAありBます。これらの行を取得する必要がありA<>Bます。問題は、A可能性が'12|14|15'あり、B可能性があります'12|15|14'。つまり、数字の順序が異なるだけで、実際には同じです。'30|31|14'and'31|30|15'や'22|23'andのようにフィールドが実際には等しくない行を取得するにはどうすればよい'22'ですか?
親切に解決策を提案してください。
これは最善の解決策ではないかもしれませんが、レコードを分割してから再度収集するよりもはるかに楽しいです。
with xslt as
(select xmltype('<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/"><xsl:for-each select="//b">
<xsl:sort select="."/><xsl:value-of select="."/>
</xsl:for-each></xsl:template></xsl:stylesheet>') xsl from dual)
select t.*
from t, xslt
where xmltype('<r><b>'||replace(a, '|', '</b><b>')||'</b></r>').transform(xsl).getstringval() <>
xmltype('<r><b>'||replace(b, '|', '</b><b>')||'</b></r>').transform(xsl).getstringval()