0

これがステートメントです。目的はそれほど重要ではありません。パブリケーションルールがどのタイプのオブジェクトに属しているかを知る必要があるだけです。ありがとう!

select case(select count(mediaitemguid) from mediaitempublicationrules where publicationruleguid = '<snip>')
       when 0 then case(select count(catalogguid) from catalogpublicationrules where publicationruleguid = '<snip>')
           when 0 then case(select count(domainguid) from domaindefaultpublicationrules where publicationruleguid = '<snip>')
              when 0 then null
             else (select 'Domain', domainguid from domaindefaultpublicationrules where publicationruleguid = '<snip>')
             end
           else (select 'Catalog', catalogguid from catalogpublicationrules where publicationruleguid = '<snip>')
           end
       else (select 'MediaItem', mediaitemguid from mediaitempublicationrules where publicationruleguid = '<snip>')
       end;

編集:もう少し明確に...これは、elseステートメントのネストされたselectにそれらの'Domain''Catalog''MediaItem'エントリを配置するまでは問題なく機能しました。それはおそらくかなり単純なものであり、以前にそのエラーに遭遇したことはありません

4

1 に答える 1

0

エラーは、2 列ではなく 1 列を返す必要があることを示しています

修正する1つの方法は、concat_wslikeを使用することです

select concat_ws(':', 'Domain', domainguid') ... <-- ':' is the delimiter
于 2010-12-22T23:03:14.760 に答える