T-SQL存储过程

时间:2014-01-27 23:26:49

标签: sql sql-server stored-procedures

我有一个脚本,当前正从一个表导入数据并插入到另一个表中。现在我必须修改脚本,如果字段的值是A,那么代码必须出现在第10列中,否则如果是B则代码应出现在第50列中。

表1:

Id Field 1 Field 2 Field 3 Field 4 
1            A 
2            B

表2:

Id Field 1 Field 2 Field 3 Field 4....Field 10.....Field 50
1                                      0/Null 
2                                                     1

有人可以建议我使用案例陈述来实现这一要求。

非常感谢任何建议!

谢谢你,新蜜蜂

3 个答案:

答案 0 :(得分:2)

您可以在选择数据时使用案例表达式:http://technet.microsoft.com/en-us/library/ms181765.aspx

答案 1 :(得分:2)

Field 10的插页上,您可以使用CASE语句,即

CASE Field2 WHEN 'A' THEN '0\Null' ELSE '' END

,同样适用于您的Field 50

答案 2 :(得分:1)

您可以使用case语句编写T-SQL:

` 
  Create table #T(
 col1 int,   col2 varchar(2),    col3 int,   col4 int,   col5 int,   col6 int,   col7 int,   col8 int,
     col9 int, col10 int,    col11 int)
     GO

 Create table #T1(
   col1 int,      col2 varchar(2),   col3 int,   col4 int,   col5 int,   col6 int,   col7 int,   col8 int,
     col9 int,   col10 int,  col11 int,  )

      Insert into #t
      Select 1,'B',5,null,null,null,null,null,null,null,null union all
      Select 2,'A',5,null,null,null,null,null,null,null,null union all
      Select 112,'B',5,null,null,null,null,null,null,null,null union all
      Select 41,'B',5,null,null,null,null,null,null,null,null union all
     Select 15,'A',5,null,null,null,null,null,null,null,null


     Select * from #t

       Insert into #t1
       Select col1, col2, col3,col4,col5,col6,col7, col8
       col9,CASE WHEN COL2 ='A' Then Col2 Else 'B' End col10, col11
       from #t
 `