在SQL查询中应用并集时,可能会要求并集查询中的每个字段必须具有相同的详细信息。例如字段数,各个字段的数据类型。
您的错误表示价值排序规则有所不同。您必须对两个查询中的列进行相同的排序规则。
下面的脚本更改可以解决您的问题。
IF @counter = @HeaderCount
BEGIN
SET @sql = @sql + ''''+@Qualifier+'''+ cast(min(case ordinal_position when '+cast(@counter as varchar)+' then column_name Collate latin1_General_CI_AI end) as varchar) +'''+@Qualifier+''' as ['+@colname+'] '
END
ELSE
BEGIN
SET @sql = @sql + ''''+@Qualifier+'''+cast(min(case ordinal_position when '+cast(@counter as varchar)+' then column_name Collate latin1_General_CI_AI end) as varchar) +'''+@Qualifier+''' as ['+@colname+'], '
END