如何从SQL Server中的表的所有列获取唯一值

时间:2012-07-11 04:02:15

标签: sql-server-2008

我有60列,我需要使用SQL查询从所有列中获取唯一值。是否可以在SQL Server中使用?

注意我需要从所有列中找到不同的值

2 个答案:

答案 0 :(得分:2)

请尝试此代码

declare @Sql_Str varchar(8000)='';
select @Sql_Str=@Sql_Str+' select cast (' +name  +' as varchar(500)) from 
<yourtable> union' from sys.columns where [object_id]=object_id('<yourtable>')
set @Sql_Str=SUBSTRING(@Sql_Str,1,len(@Sql_Str)-6)
exec(@Sql_Str)

答案 1 :(得分:0)

  1. 将SSMS对象资源管理器中的列标题拖到查询窗口。
  2. 使用正则表达式查找并用“\ n”替换“,”。
  3. 使用每个列的正则表达式为每列生成SELECT INTO distinct查询,并将输出分配给由正则表达式构建的临时表。
  4. 使用临时表中的数据。