0

私はselectステートメントの下で実行していますが、サブクエリが正常に実行されるため、2行目が問題の原因であると100%確信しています。

Where (first,second) IN有効なステートメントですか?

このクエリを実行する理由は、最初の選択を削除に置き換えるためです。したがって、必要なセットを取得していることを確認したいだけです。

select * from edit_proj_isbn e
where (e.record_id, e.proj_isbn)
IN
(
    select t_r.record_id, t_r.proj_isbn from editorial e,
    (
        select ed.record_id as record_id, substring(d.file_name, 1, 13) as epubisbn, epi.proj_isbn as proj_isbn, ed.asset_subtype as asset_subtype
        from editorial ed join doc_renditions d on ed.record_id = d.record_id join edit_proj_isbn epi on ed.record_id =  epi.record_id 
        where (ed.asset_subtype like 'epub' or ed.asset_subtype like 'updf' )
        and substring(d.file_name, 1, 13) not like epi.proj_isbn
    ) AS t_r
    where t_r.record_id=e.record_id
)

2行目が強調表示された状態で、以下のエラーが発生します。

メッセージ4145、レベル15、状態1、2行目
'、'の近くで、条件が予期されるコンテキストで指定された非ブール型の式。

ありがとう、ブルース

4

2 に答える 2

2

Where(first、second)INは有効なステートメントですか?

いいえ、それは有効なステートメントではありません。WHEREそれらごとに個別の句が必要です。

于 2012-08-09T18:11:03.853 に答える
0

CTEを使用した簡単な盗品:

with Timmy as (
  select t_r.record_id, t_r.proj_isbn from editorial e, 
  ( 
    select ed.record_id as record_id, substring(d.file_name, 1, 13) as epubisbn, epi.proj_isbn as proj_isbn, ed.asset_subtype as asset_subtype 
    from editorial ed join doc_renditions d on ed.record_id = d.record_id join edit_proj_isbn epi on ed.record_id =  epi.record_id  
    where (ed.asset_subtype like 'epub' or ed.asset_subtype like 'updf' ) 
    and substring(d.file_name, 1, 13) not like epi.proj_isbn 
  ) AS t_r 
where t_r.record_id=e.record_id )
select * from edit_proj_isbn
  where record_id in ( select t_r.record_id from Timmy ) and proj_isbn in ( select t_r.proj_isbn from Timmy )
于 2012-08-09T18:22:55.427 に答える