select sap_no,cast(cu_1 as varchar(10)) & cast(cu_2 as varchar(10) as cu,rack_1,rack_2,rack3
from table

解决方案 »

  1.   

    Select (Cast(cu_1 As Varchar(10)) +Cast(cu_2 As Varchar(10)) +Cast(rack_1 As Varchar(10)) +Cast(rack_2 As Varchar(10))) As 新列名  from 表
      

  2.   

    谢谢楼上的,但我现在有个问题,我表里的列是动态填加进去的,也就是说我写这个sql的时候我不知道具体有哪里列的,我只知道我需要做的是:如果'_'以前的列名相同的话就把这些列合并把值累加,楼上大哥再辛苦一下,谢谢拉~~~
      

  3.   

    我想把所有的cu组合起来放在一个列里,那势必也分析列名,就是说字符'_'前的字符串相同的列合并起来.楼主说的有点矛盾,不知道是不是这个意思。Select sap_no,Cast(cu_1 As Varchar(10)) +Cast(cu_2 As Varchar(10)) As cu ,Cast(rack_1 As Varchar(10)) +Cast(rack_2 As Varchar(10)) As rack,rack3  from 表另外,用&是不行的。
      

  4.   

    动态语句可以写。但是你的意思表达的不清楚。cu_1  cu_2   rack_1   rack_2这四列是合并成一列还是两列??另外新取的列名叫什么呢??
      

  5.   

    合并成两列啊
    就比如说判断出 有三列'_'前的字符串是一样的,就把这三列合并并以'_'前的作为列名
    比如:
    cu_1  cu_2  rack_1  rack_2  rack_3
    合并完就是
    cu   rack
      

  6.   

    你的列中是不是固定只有cu   rack这两种,会不会还有ab_1,ab_2,cd_1,cd_2之类的列??