0

WHERE句を使用して 3 つのテーブルにまたがる JOIN を作成しようとしていますが、エラーが発生します。

「「=」付近の構文が正しくありません」。

何が間違っているのかわからない?

これは私の声明です:

select 
    TBL_CS_PROJECT.NAME ,
    TBL_CS_LINKS.LINK_URL , 
    TBL_CS_CLICKS.CLICK_COUNT 
from 
    TBL_CS_PROJECT 
left join 
    TBL_CS_LINKS on TBL_CS_PROJECT.PROJECT_ID = TBL_CS_LINKS.PROJECT_ID 
right join 
    TBL_CS_CLICKS on TBL_CS_LINKS.LINK_ID = TBL_CS_CLICKS.LINK_ID 
WHERE =  (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0) 
    OR  (CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0) 
order by   
    TBL_CS_PROJECT.NAME
4

3 に答える 3

3

=で削除WHERE

...
WHERE (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)  OR ...

ドキュメントによると: CHARINDEX MSDN Doc

CHARINDEX- 式から別の式を検索し、見つかった場合はその開始位置を返します。

これはすでにブール式です:

(CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0) 

したがって、句に記号WHEREは必要ありません。=

于 2012-11-11T12:33:37.207 に答える
1

句の後の式が欠落しており、演算子がどのように機能するかWHEREを示す式と比較します。(CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)=

....
WHERE =  (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0) 
OR  (CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0) order by   TBL_CS_PROJECT.NAME

演算子を削除し=ます:

   ...
   WHERE CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0
     OR  CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0
   order by   TBL_CS_PROJECT.NAME
于 2012-11-11T12:33:08.953 に答える
1

WHERE =あなたの問題です。に変更するだけですWHERE

于 2012-11-11T12:35:10.093 に答える