2017-07-18 55 views
0

我寫了一個選擇查詢在SQL Server中選擇命令由值比較行的

select COUNT(csq.PK) as 'QuestionCount' , csq.VersionID  
     from tversion as aiv 
     inner join tquestion as csq csq.VersionID=aiv.VersionID  
     group by csq.VersionID 

返回以下表格。

enter image description here

我要檢查,如果QuestionCount不匹配的任何行。

我如何在選擇查詢中進行檢查?

+0

這裏有什麼預期的結果? –

+0

這裏QuestionCount是不同的,所以我需要一個指示可能是真或假。 –

+1

不同於什麼?請在問題中發佈您的預期結果。 –

回答

1
with cte as 
    (
    select COUNT(csq.PK) as QuestionCount , csq.VersionID  
    from tversion as aiv 
    inner join tquestion as csq csq.VersionID=aiv.VersionID  
    group by csq.VersionID 
    ) 
    select case count(distinct QuestionCount) 
       when 1 then 'No Mismatch' 
       else 'Mismatched' 
      end as result 
    from cte;  
0

方式一:

SELECT DISTINCT COUNT(csq.PK) AS 'QuestionCount' 
FROM tversion AS aiv 
INNER JOIN tquestion AS csq ON csq.VersionID = aiv.VersionID 
GROUP BY csq.VersionID 

SELECT CASE @@ROWCOUNT WHEN 1 THEN 'true' ELSE 'false' END 

另一種方式:

SELECT CASE COUNT(*) WHEN 1 THEN 'TRUE' ELSE 'FALSE' END 
FROM (
    SELECT DISTINCT COUNT(csq.PK) AS 'QuestionCount' 
    FROM tversion AS aiv 
    INNER JOIN tquestion AS csq ON csq.VersionID = aiv.VersionID 
    GROUP BY csq.VersionID 
) AS T 
+0

不工作,我想檢查每行的QuestionCount的值,不計數。 –

+1

@KuntalBose,它不只是'COUNT',它會'DISTINCT COUNT'和'WHEN 1'進行比較。如果您確實嘗試過,請將其產出與預期產出相比較。另外,有一點['CREATE TABLE; INSERT INTO;'](https://stackoverflow.com/help/mcve)腳本可能會有所幫助。 – KtX2SkD