读书人

update和case组合有关问题

发布时间: 2012-12-14 10:33:07 作者: rapoo

update和case组合问题
我想实现的功能是,

原表sheet1$
红一 红二 红三 红四 红五 红六
10 11 12 13 16 18
4 9 11 19 21 26
1 7 9 13 16 32

新表mainT
共33列,分别为red1,red2,red3,red4.....red33

我要实现的功能是,当原表红一的值是10,在新表的ren10列上显示true或1,都可以;当原表红二的值是11,在新表的ren11列上显示true或1;....以此类推

我再sqlserver里面调试的sql语句为:


insert into mainT(red1,red2,red3,red4,red5,red6,red7,red8,red9,red10,
red11,red12,red13,red14,red15,red16,red17,red18,red19,red20,
red21,red22,red23,red24,red25,red26,red27,red28,red29,red30,
red31,red32,red33)
select (case
when 红一 = '1' or 红二 = '1' or 红三='1' or 红四='1' or 红五='1' or 红六='1'
then mainT.red1=True),
(case
when 红一 = '2' or 红二 = '2' or 红三='2' or 红四='2' or 红五='2' or 红六='2'
then mainT.red2=True),
(case
when 红一 = '3' or 红二 = '3' or 红三='3' or 红四='3' or 红五='3' or 红六='3'
then mainT.red3=True),
(case
when 红一 = '4' or 红二 = '4' or 红三='4' or 红四='4' or 红五='4' or 红六='4'
then mainT.red4=True),
(case
when 红一 = '5' or 红二 = '5' or 红三='5' or 红四='5' or 红五='5' or 红六='5'
then mainT.red5=True),
(case
when 红一 = '6' or 红二 = '6' or 红三='6' or 红四='6' or 红五='6' or 红六='6'
then mainT.red6=True),
(case
when 红一 = '7' or 红二 = '7' or 红三='7' or 红四='7' or 红五='7' or 红六='7'
then mainT.red7=True),
(case
when 红一 = '8' or 红二 = '8' or 红三='8' or 红四='8' or 红五='8' or 红六='8'
then mainT.red8=True),
(case
when 红一 = '9' or 红二 = '9' or 红三='9' or 红四='9' or 红五='9' or 红六='9'
then mainT.red9=True),
(case
when 红一 = '10' or 红二 = '10' or 红三='10' or 红四='10' or 红五='10' or 红六='10'
then mainT.red10=True),
(case
when 红一 = '11' or 红二 = '11' or 红三='11' or 红四='11' or 红五='11' or 红六='11'
then mainT.red11=True),
(case
when 红一 = '12' or 红二 = '12' or 红三='12' or 红四='12' or 红五='12' or 红六='12'
then mainT.red12=True),
(case
when 红一 = '13' or 红二 = '13' or 红三='13' or 红四='13' or 红五='13' or 红六='13'


then mainT.red13=True),
(case
when 红一 = '14' or 红二 = '14' or 红三='14' or 红四='14' or 红五='14' or 红六='14'
then mainT.red14=True),
(case
when 红一 = '15' or 红二 = '15' or 红三='15' or 红四='15' or 红五='15' or 红六='15'
then mainT.red15=True),
(case
when 红一 = '16' or 红二 = '16' or 红三='16' or 红四='16' or 红五='16' or 红六='16'
then mainT.red16=True),
(case
when 红一 = '17' or 红二 = '17' or 红三='17' or 红四='17' or 红五='17' or 红六='17'
then mainT.red17=True),
(case
when 红一 = '18' or 红二 = '18' or 红三='18' or 红四='18' or 红五='18' or 红六='18'
then mainT.red18=True),
(case
when 红一 = '19' or 红二 = '19' or 红三='19' or 红四='19' or 红五='19' or 红六='19'
then mainT.red19=True),
(case
when 红一 = '20' or 红二 = '20' or 红三='20' or 红四='20' or 红五='20' or 红六='20'
then mainT.red20=True),
(case
when 红一 = '21' or 红二 = '21' or 红三='21' or 红四='21' or 红五='21' or 红六='21'
then mainT.red21=True),
(case
when 红一 = '22' or 红二 = '22' or 红三='22' or 红四='22' or 红五='22' or 红六='22'
then mainT.red22=True),
(case
when 红一 = '23' or 红二 = '23' or 红三='23' or 红四='23' or 红五='23' or 红六='23'
then mainT.red23=True),
(case
when 红一 = '24' or 红二 = '24' or 红三='24' or 红四='24' or 红五='24' or 红六='24'
then mainT.red24=True),
(case
when 红一 = '25' or 红二 = '25' or 红三='25' or 红四='25' or 红五='25' or 红六='25'
then mainT.red25=True),
(case
when 红一 = '26' or 红二 = '26' or 红三='26' or 红四='26' or 红五='26' or 红六='26'
then mainT.red26=True),
(case
when 红一 = '27' or 红二 = '27' or 红三='27' or 红四='27' or 红五='27' or 红六='27'
then mainT.red27=True),
(case
when 红一 = '28' or 红二 = '28' or 红三='28' or 红四='28' or 红五='28' or 红六='28'
then mainT.red28=True),
(case
when 红一 = '29' or 红二 = '29' or 红三='29' or 红四='29' or 红五='29' or 红六='29'
then mainT.red29=True),
(case
when 红一 = '30' or 红二 = '30' or 红三='30' or 红四='30' or 红五='30' or 红六='30'


then mainT.red30=True),
(case
when 红一 = '31' or 红二 = '31' or 红三='31' or 红四='31' or 红五='31' or 红六='31'
then mainT.red31=True),
(case
when 红一 = '32' or 红二 = '32' or 红三='32' or 红四='32' or 红五='32' or 红六='32'
then mainT.red32=True),
(case
when 红一 = '33' or 红二 = '33' or 红三='33' or 红四='33' or 红五='33' or 红六='33'
then mainT.red33=True)
from Sheet1$,mainT


但是报错,“mainT.red1=True”的'=' 附近有语法错误。其他同样问题。请高手帮忙看看。
[最优解释]
select mainT.red1=(case  when 红一 = '1' or 红二 = '1' or 红三='1' or 红四='1' or 红五='1' or 红六='1'  then 'true' end) 

[其他解释]
select mainT.red1=(case when 红一 = '1' or 红二 = '1' or 红三='1' or 红四='1' or 红五='1' or 红六='1' then 'True'), 其他类推
[其他解释]
http://blog.csdn.net/spritenet/article/details/8109837

我这有双色球所有的数据,你要不?留下邮箱。。。。。。
[其他解释]
select (case
when 红一 = '1' or 红二 = '1' or 红三='1' or 红四='1' or 红五='1' or 红六='1'
then '1' else '0' end) as red1,

这种形式,才运行通过的

读书人网 >SQL Server

热点推荐