SSIS:变量查询语句引起列输出顺序不一致的解决方法

这个问题来自于 天善BI社区,看了一下比较有意思,因为我自己认为在 SSIS中处理各种类型文件的 经验还比较丰富(有一年的时间几乎所有ETL都跟文件相关),但是这个问题确实之前没有特别考虑过。研 究了一下,找到了解决的方法,赶紧记录下来。

简单描述一下这个问题,如果我们的 SOURCE 是直接从表里面查询,然后输出到文件的时候,查询语 句中列的顺序就是输出文件列的顺序(逗号分隔的文件)。但是如果使用变量查询语句,那么这个输出顺 序和查询列的顺序就会不一致了!如果我们的文件格式已经提前定义好了,那么这个就很不好调整了。 除非手动一列一列的在文件管理器中删除所有列,然后重新建立,但这样会非常耗费时间和精力,并且 非常容易出错。

先看看问题,再来看比较简单的解决方案。

测试数据源查询语句和结果 -

如果是直接查询的话,文件输出列的顺序没有任何问题和影响,下面是我的查询语句,和在 SQL Server 中的是一样的。

时间: 2024-08-01 09:50:50

SSIS:变量查询语句引起列输出顺序不一致的解决方法的相关文章

oracle sql语句疑问,关于嵌套查询语句的执行先后顺序

问题描述 oracle sql语句疑问,关于嵌套查询语句的执行先后顺序 1.select A.END from 2. tableA A,tableB B 3.where A.X=B.Y 4.and A.END = ( 5. select MAX(END) from tableA 6. where tableA.X = B.Y 7. ): 我想问一下.按理max只有一个最值,为何这样写会出来多个.另外第5,6,7行是子查询,不是很理解为什么可以里面调用父查询里面的B.能详细说一下这个sql 完整的

order-mysql查询语句求助 限定输出数和排序方式

问题描述 mysql查询语句求助 限定输出数和排序方式 从表a中倒叙输出id从20-11的记录这句话怎么写 select * from a where id limit 10,20 order by id desc 这样不对 order和limit无法同时使用...到底要怎么写啊 求大神指点 解决方案 select t.* from (select * from a where id limit 10,20) t order by t.id desc ; 解决方案二: select * from

java中hasNextInt判断后无限循环输出else项的解决方法_java

话不多说,上来就是干! ?12345678910111213141516171819202122232425262728293031323334353637 import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new

php生成excel列名超过26列大于Z时的解决方法_php技巧

本文实例讲述了php生成excel列名超过26列大于Z时的解决方法.分享给大家供大家参考.具体分析如下: 我们生成excel都会使用phpExcel类,这里就来给大家介绍在生成excel列名超过26列大于Z时的解决办法,这是phpExcel类中的方法,今天查到了,记录一下备忘,代码如下: 复制代码 代码如下: public static function stringFromColumnIndex($pColumnIndex = 0)  {          //  Using a lookup

转载《mysql 一》:mysql的select查询语句内在逻辑执行顺序

原文:http://www.jellythink.com/archives/924 我的抱怨 我一个搞应用开发的,非要会数据库,这不是专门的数据库开发人员干的事么?话说,小公司也没有数 据库开发人员这么个职位吧.好吧,对数据库最深的印象还停留在大学<数据库原理>这堂课上,什么第一范式,第二范式-,这些理论的东西,多多少少还是记得 点,至于更深层次的,我不会.所以呢,撸起袖子,开始学习吧. 干程序员,最不怕的就是学习,如果你连学习都怕了,那还是早点退出这行吧.你说是吧.而我今天这篇文章,既不总结

iOS中Xcode 8 日志输出乱码问题的解决方法_IOS

更新到Xcode 8的同学应该都遇到了这个问题:用Xcode 8运行项目,日志会疯狂的刷,就像下面这种图一样: 日志输出 于是,简单搜寻了下,"歪果仁"给出了如下解决方法: Edit Scheme-> Run -> Arguments, 在Environment Variables里边添加 OS_ACTIVITY_MODE = disable

解析WPF实现音频文件循环顺序播放的解决方法_实用技巧

要做基于WPF的音频文件循环顺序播放首先要了解WPF下有哪些类是用于控制音频的. WPF下主要有两个音频控制的类,这里做下比较: 1.SoundPlayer 2.MediaPlayer 派生MediaElement 一.SoundPlayer类   1.基于.NET FRAMEWORK 2.0: 2.可播放WAV音频文件: 3.只能播放一个文件,同时播放多个文件会后一个文件的播放操作会终止前一个播放的文件: 4.不能对音量进行控制:二.MediaPlayer类 1.基于WPF: 2.支持多种音频

IIS和.NET(1.1/2.0)的安装顺序及错误解决方法_实用技巧

一.基于.net2.0的解决办法 为了使IIS能够支持.net 2.0,在安装的时候必须先安装iis,然后安装.net 2.0,如果先安装了.net,则在装完iis后必须将.net注册上.注册方法是在命令行中输入: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i 而卸载则是 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -u 二.基于.net1.

js处理php输出时间戳对不上号的解决方法_javascript技巧

由PHP传入JS处理的时间戳我说怎么老是对不上号呢,原来JS时间戳为13位,包含3位毫秒的,而PHP只有10位不包含毫秒的. var nowtime = (new Date).getTime();/*当前时间戳*/ /*转换时间,计算差值*/ function comptime(beginTime,endTime){ var secondNum = parseInt((endTime-beginTime*1000)/1000);//计算时间戳差值 if(secondNum>=0&&s