日期:2014-05-17  浏览次数:20477 次

select 语句问题
有一个简单select 语句如下所示:
select f1,f2,f3 from (select f1,f2,f3,f4,f5 from t1)
可是select f1,f2,f3,f4,f5 from t1可能的列数是不定的,我需要从这些不定的列数中去固定的列数,或者某个固定的列数,或者说我就要从select f1,f2,f3,f4,f5 from t1结果集中取出前3列的值,有没有类似于:
select left 3 from (select f1,f2,f3,f4,f5 from t1)
的语句呢

------解决方案--------------------
SQL code
--直接拼接出来就行

set @colists = 'f1,f2,f3'
set @sql ='select '+@collists+' from t1'

exec(@sql)

------解决方案--------------------
探讨
有一个简单select 语句如下所示:
select f1,f2,f3 from (select f1,f2,f3,f4,f5 from t1)
可是select f1,f2,f3,f4,f5 from t1可能的列数是不定的,我需要从这些不定的列数中去固定的列数,或者某个固定的列数,或者说我就要从select f1,f2,f3,f4,f5 from t1结果集中取出前3列的值,有没有类似于:……

------解决方案--------------------
探讨
谢谢各位的回复!
具体的原因是,我需要进行sql数据库移植,由于移植过程导致移植后数据仍有差异,需要将差异数据插入到新数据库中,我在网上查到如下的语句:
insert into BF_plan_D(PROD_DATE,FACTORY_CODE,FACTORY_NAME,PRD_PLAN_WT,BF_TIME,SM_1,SM_2,SM_3)
select cc.PROD_DATE,cc.FAC……

------解决方案--------------------
探讨

引用:
谢谢各位的回复!
具体的原因是,我需要进行sql数据库移植,由于移植过程导致移植后数据仍有差异,需要将差异数据插入到新数据库中,我在网上查到如下的语句:
insert into BF_plan_D(PROD_DATE,FACTORY_CODE,FACTORY_NAME,PRD_PLAN_WT,BF_TIME,SM_1,SM_2,SM_3)
select cc.P……