私はオラクル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()