0

私はオラクル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'ですか?

親切に解決策を提案してください。

4

2 に答える 2

2

これは最善の解決策ではないかもしれませんが、レコードを分割してから再度収集するよりもはるかに楽しいです。

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()

ここにsqlfiddleのデモがあります

于 2013-10-16T07:36:42.843 に答える