zoukankan      html  css  js  c++  java
  • 多列转一行

    select A,STUFF ((select ' ,'+B+': '+Convert(varchar(20),Convert(int,C))+
    ' '+D+' * '+Convert(varchar(20),Convert(int,E))+' '+F
    from G as tb01
    where tb01.A=tb02.A for xml path('')),1,2,'') as H
    from I as tb02
    where tb02.A in ('A','B','C')
    group by tb02.A

    上面的方法仅用于 MSSQL 2005 或以上

    目前的项目需求是 mssql 2000 且要求去掉重复项 使用如下代码搞定

    /*  
    -- 合并多列到一行 加入去重功能 MSSQL  
    */  
    CREATE FUNCTION STUFF(@i int,@field1 varchar(2000),@field2 varchar(2000))  
    RETURNS varchar(8000)  
    AS  
    BEGIN  
        DECLARE @values varchar(8000)  
        SET @values = ''  
        if @i=1 -- 这里只能固定的 1 是求 位置 和 2 是求 备注 和  
      SELECT @values = @values + ',' + InLocation FROM table WHERE WorkID=@field1 and SheetNo=@field2 Group by WorkID,SheetNo,InLocation
        else  
      SELECT @values = @values + ',' + Remark FROM table WHERE WorkID=@field1 and SheetNo=@field2 Group by WorkID,SheetNo,Remark 
        RETURN STUFF(@values, 1, 1, '')  
    END
  • 相关阅读:
    java实习生面试
    使用vue可视化界面创建vue项目
    Git操作分支
    ECharts获取Json文件数据
    Java中字符串反转
    es6新增的API
    es5新增的数组的方法
    操作字符串的相关方法
    排序方法总结
    js内置对象-Array
  • 原文地址:https://www.cnblogs.com/z5337/p/4120455.html
Copyright © 2011-2022 走看看