2

這是我的查詢如何解決SQL Server錯誤「了條件,預計將在指定的上下文非布爾類型的表達式,靠近‘集團’」

INSERT INTO Tbl_DomainWiseStats (subdomainid, tendercount, Type_cat, DisplayText) 
    SELECT 
     ' + CAST(@domain_id AS VARCHAR(100)) + ' 
     , TenderCount 
     , ''ByCountry'' 
     ,Country 
    FROM 
     (SELECT DISTINCT 
      V.Country, 
      COUNT(DISTINCT Sr_No) as TenderCount 
     FROM 
      dbo.viewgetlivetenders V 
     WHERE 
      '+ @Domainquery +' 
     GROUP BY 
      V.Country) a 
ORDER BY 
    TenderCount 

錯誤消息:

[SQLSTATE 42000] (Error 4145) An expression of non-boolean type specified in a context where a condition is expected, near 'GROUP'

+1

在查詢中爲@DomainQuery提供一個值 – Lucky

+0

我們可以看到這個字符串表達式在您的問題中解決了什麼問題,即注入了所有的連接值?您應該能夠將其回顯到控制檯。 – halfer

+0

請不要「標記垃圾郵件」。如果您使用的是SQL Server的所有版本,包括2008年,2012年和2014年,那麼也許值得在您的問題中如此明確地表達(這很不尋常)。如果您只使用一個版本,那麼請使用您實際使用的版本。 – halfer

回答

5

你需要完成where條款..

這將導致錯誤:

select * from test where id 

但不是這樣:

select * from test where id =1 

在動態SQL,下面部分是造成問題..

WHERE '+ @Domainquery +' 
         GROUP BY V.Country 
1

不要將您的where子句比較什麼。

"WHERE '+ @Domainquery +' "不完整,等於它想要比較的值。

相關問題