首页 >>  正文

列转行sql写法

来源:baiyundou.net   日期:2024-09-21

家维翟3093sql 列转行 -
米狮勇18296241883 ______ select case when tab1.tutorld is null then tab2.tutorld else tab1.tutorld end,tab1.菜品1,tab2.菜品2 from (select tutorld,dishname as '菜品1' from 表格名称 where dishtype = 1) tab1 full join (select tutorld,dishname as '菜品2' from 表格名称 where dishtype = 2) tab2 on tab1.tutorld = tab2.tutorld ;

家维翟3093ORACLE SQL 列转行 按要求排列 -
米狮勇18296241883 ______ Declare v_id varchar2(20); v_str Varchar2(100); Cursor cur Is Select b From a; Begin Open cur; Loop Fetch cur Into v_id; Exit When cur%Notfound; v_str:=v_str||v_id; End Loop; dbms_output.put_line(v_str); Close cur; End;

家维翟3093SQL2005对查询出的结果进行列转行 -
米狮勇18296241883 ______ SELECT GUID,STUFF((SELECT ','+type FROM a WHERE GUID=ss.GUID FOR XML PATH('')),1,1,'') AS b FROM a ss GROUP BY ss.GUID ) c on c.GUID = b.GUID

家维翟3093SQL:列转行,如何实现,最好使用存储过程 -
米狮勇18296241883 ______ 比如:表: Table 字段及数据:FNO Item1 a2 b3 c 代码如下:Creat tabel #temp(FNO int) Declare @a int ,@b int,@c Varchar Set @a=1 Select @b=Count(*) From Table While @a Select @c=item From Table Where FNO=@a Exec ('ALTER TABLE #temp ADD' + @C + 'CHAR(50)') Set @a=@a+1 End Select * From #Temp 直接在这里写的,没有测试过语法,但思路应该是没问题的.

家维翟3093oracle 列转行 -
米狮勇18296241883 ______ 假设你的表结构是tb_name(id, remark),则语句如下:SELECT a.id, wm_concat (a.remark) new_result FROM tb_name a group by a.id

家维翟3093SQL 列转行 合计 -
米狮勇18296241883 ______ select name,sum(modea), sum(modeb) from ( select name,count(mode) as modea,0 as modeb from 表1 where mode = 'a' group by name ) UNION ALL( select name,0 as modea,count(mode) as modeb from 表1 where mode = 'b' group by name )) group name

家维翟3093sql 行变成列 -
米狮勇18296241883 ______ 楼主 声明一个变量 把列传给变量即可 行转列 有专门的函数的 下面是课程表 有列课程和分数 你参考这个例子 就可以了 declare @sql varchar(8000)='' select @sql = isnull(@sql + '],[' , '') + 课程 from tb group by 课程 set @sql = '[' + @sql + ']' exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')

家维翟3093mysql中列转行,并多个字段转到一行中的一个字段上,中间用逗号分开 -
米狮勇18296241883 ______ select ID,group_concat(NAME) as NAME from table group by ID; select ID,group_concat(NAME SEPARATOR ';') as NAME from a group by ID;

家维翟3093Oracle:多列转多行 -
米狮勇18296241883 ______ 你这个应该是一张通用的表吧,就是说下面还有可能出现,诸如id=10002或者10003等. 如果这样的话,就用row_number()over(partition by id),进行排序,然后把排序后的再进行转换. 比如上面这个就是 select row_number()over(partition by id...

家维翟3093SQL 列转行 -
米狮勇18296241883 ______ 你在SQL中写只能用存储过程,而且你的行和列数必须相等,或者可以在程序中控制写,我觉得在程序中比较好写一点,把所有数据查出来,在写个算法,把数据update 或者重新insert

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024