SQL Server:位列不产生结果

时间:2013-01-16 18:29:23

标签: sql sql-server sql-server-2008

以下查询产生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 

我修改了一行DELETED列,将其从False更改为True。当我尝试搜索DELETED = 1而不是DELETED = 0时,搜索不会产生任何结果。

为什么我改变的那一行没有出现?当我运行DELETED = 0查询时,我只得到5个结果(上图)。在我专门搜索ATTACHMENT_ID之前,不会检索到第6个结果。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

鉴于帖子和评论,很难确定你的情况发生了什么。我会尝试这样的方法来确定您的已删除列值:

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

如果这样会返回正确的结果,那么就像听起来一样愚蠢,假设Deleted = 1不起作用,请尝试以下方法:

SELECT * 
FROM vwFILES_ATTACHMENTS
WHERE Deleted <> 0

如果= 1或&lt;&gt; 0工作并返回正确的行,然后有可能是@Joel是正确的,他的假设是你的WHERE子句中的其他约束导致它不返回。如果= 1或&lt;&gt; 0不起作用,那我就是一无所知。

祝你好运。