Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 在SQL Server中合并列结果_Sql Server 2008_Dynamic Sql - Fatal编程技术网

Sql server 2008 在SQL Server中合并列结果

Sql server 2008 在SQL Server中合并列结果,sql-server-2008,dynamic-sql,Sql Server 2008,Dynamic Sql,我有一个功能,用户可以选择表格(一次只能选择一个),并根据该功能,将显示表格列。用户可以选择多个列,所以我想要的是,当用户选择列时,它应该返回所选列的结果。现在,根据我的表格,如果用户选择具有唯一值的列1,我将允许用户选择该列,但如果用户选择列2,我将提示消息,说“选择另一列或多列”,然后在后台为这些选定列创建组合 例如: Table name = `TestTable` Column_1 Column_2 Column_3 -------- -------- -------- 1

我有一个功能,用户可以选择
表格(一次只能选择一个)
,并根据该功能,将显示
表格列。用户可以选择多个列,所以我想要的是,当用户选择列时,它应该返回所选列的结果。现在,根据我的表格,如果用户选择具有唯一值的
列1,我将允许用户选择该列,但如果用户选择
列2,我将提示消息,说“选择另一列或多列”,然后在后台为这些选定列创建组合

例如:

Table name = `TestTable` 

Column_1 Column_2 Column_3
-------- -------- --------
    1        1       ab
    2        2       bc
    3        1       bc
预期成果:

Column_1 = 1 2 3
Column_1, Column_2 = 1 1, 2 2, 3 1 (combination of two columns)
Column_1, Column_2, Column_3 = 1 1 ab, 2 2 bc, 3 1 bc (combination of three columns)
我尝试了一个查询,但它只对一个列名有用。我不确定用户是否选择了多个列,然后如何处理

我的问题是:

declare @colCount bigint, @uniqColCount bigint, @result nvarchar(max)

select @colCount = count(Column_1) from TestTable
select @uniqColCount = count(distinct Column_1) from TestTable

    if(@colCount = @uniqColCount)
     begin
        set @result = (select Column_1 from TestTable)
        print @result
     end
    else
        print 'false'

我需要为
SQL
中的每种逻辑实现

您可以使用While条件来解决此问题。以下是更多细节的参考资料。