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 +' "不完整,等于它想要比较的值。

相关问题