Sql server 位数据类型的动态查询与比较

Sql server 位数据类型的动态查询与比较,sql-server,bit,dynamic-sql,Sql Server,Bit,Dynamic Sql,我有一个动态查询,用于检索应为1或0(位数据类型)(true或false)的值 这是代码块 DECLARE @Country VARCHAR(255) = (select param_value from [kat].[PARAMS] where param_name = 'Country') DECLARE @CountrySelection AS NVARCHAR(MAX) DECLARE @RESULT AS BIT set @CountrySelection ='select

我有一个动态查询,用于检索应为1或0(位数据类型)(true或false)的值

这是代码块

DECLARE @Country VARCHAR(255) = (select param_value from [kat].[PARAMS] where param_name = 'Country')

DECLARE @CountrySelection AS NVARCHAR(MAX)
DECLARE @RESULT AS BIT

    set @CountrySelection ='select ['+@Country+'] from COUNTRY_BLOCKS where param_id = 1';


        EXEC sp_executesql @CountrySelection , N'@RESULT BIT OUTPUT',@RESULT =  @RESULT OUTPUT


        **if (CAST(@RESULT as BIT) = 1)
        BEGIN**
但是,它看到@RESULT不包含1或0,因此从不满足IF条件。是否有办法检查@RESULT中返回值的确切数据类型

另一方面,如果您知道获得此功能的更好解决方案,如果您能分享一些想法,我将不胜感激

多谢各位


Kat

提示:使用PRINT和PRINT您的countryselection语句并运行它,查看参数需要什么以及结果是什么我根本不明白您在这里要做什么。由于查询中没有@RESULT参数,因此无法按POST方式工作。这里的设计出了很大的问题。一旦您不得不使用动态sql来指示返回哪一列,这显然表明您需要重新考虑您的流程。