Group By子句在sp_executesql中不能正常工作



sp_executesqlgroup by子句不能正常工作,我正在调试这个

我从sp_executesql中剥离了所有参数,并有这个简单的批处理:

declare @SQLStatement nvarchar(1000);
set @SQLStatement='select '+cast(count('phonenumbertypeid') as nvarchar(100))+ ' from person.personphone 
group by phonenumbertypeid'
exec sp_executesql @SQLStatement

现在,这给了我1的结果,这肯定是错误的。

我在没有sp_executesql的情况下运行了相同的语句,它给了我736的正确结果,这是正确的:

select cast(COUNT(PhoneNumberTypeID) as nvarchar(100)) from person.PersonPhone 
group by PhoneNumberTypeID

我坚信这个问题是由我在@SQLStatement中表演的演员引起的:

set @SQLStatement='select '+cast(count('phonenumbertypeid') as nvarchar(100))+ ' from person.personphone 

sp_executesql语句中,我如何解决我与group by子句的问题?

如果执行此命令,您将看到问题:

declare @SQLStatement nvarchar(1000);
set @SQLStatement='select '+cast(count('phonenumbertypeid') as nvarchar(100))+ ' from person.personphone 
group by phonenumbertypeid'
select @SQLStatement

你正在执行这个:

select 1 from person.personphone group by phonenumbertypeid

试试这个(未测试):

declare @SQLStatement nvarchar(1000);
set @SQLStatement='select cast(count(''phonenumbertypeid'') as nvarchar(100)) from person.personphone 
group by phonenumbertypeid'
exec sp_executesql @SQLStatement

相关内容

  • 没有找到相关文章

最新更新