0

次のクエリでは、6 つの結果が得られます。

SELECT ATTACHMENT_ID,
       /* Somme other columns */
       THUMBNAIL_EXIST,
       CASE isnull ((SELECT TOP 1 EMAIL_ID
                     FROM   EMAILS_ATTACHMENTS
                     WHERE  ATTACHMENT_ID = vwFILES_ATTACHMENTS.ATTACHMENT_ID), '00000000-0000-0000-0000-000000000000')
         WHEN '00000000-0000-0000-0000-000000000000' THEN '0'
         ELSE '1'
       END AS SENT_ATTACHMENT,
       CASE File_ext
         WHEN '.pdf' THEN 'true'
         ELSE 'false'
       END AS 'enablecheck',
       CASE VISIBLE_TO_CLIENT
         WHEN '1' THEN '/FACTS/App_Themes/SugarClassic/images/check_inline.gif'
         ELSE '/FACTS/App_Themes/SugarClassic/images/close_inline.gif'
       END AS 'VISIBLE_TO_CLIENT_PATH'
FROM   vwFILES_ATTACHMENTS
WHERE  ( 1 = 1 )
       AND ( PARENT_TYPE = 'Files' )
       AND ( PARENT_ID = '55e52006-ce85-4781-b6f9-00b68c04d62f' )
       AND ( DELETED = 0 )
ORDER  BY DATE_ENTERED DESC 

1 行のDELETED列を からFalseに変更しましたTrueDELETED = 1の代わりにを検索しようとするとDELETED = 0、検索結果がありません。

変更した行が表示されないのはなぜですか? DELETED = 0クエリを実行すると、5 つの結果しか得られません(上記)。6 番目の結果は、具体的に検索するまで取得されませんATTACHMENT_ID

ご協力いただきありがとうございます。

4

1 に答える 1

1

投稿とコメントを考えると、あなたの状況で何が起こっているのかを判断するのは困難です. Deleted 列の値を決定するために、次のようなことを試みます。

SELECT DELETED, COUNT(*)
FROM vwFILES_ATTACHMENTS
GROUP BY DELETED

それが正しい結果を返している場合は、Deleted = 1 が機能しないと仮定して、次のようなことを試してください。

SELECT * 
FROM vwFILES_ATTACHMENTS
WHERE Deleted <> 0

= 1 または <> 0 のいずれかが機能し、正しい行を返す場合、WHERE 句の他の制約が原因で返されないという仮定で @Joel が正しかった可能性があります。= 1 または <> 0 が機能しない場合、私は無知です。

幸運を。

于 2013-01-16T18:53:09.930 に答える