前言以前接触过通用SQL中的行列转置,行转列使用聚合函数sum | max 然后结合case when then else end 语句就可以实现,而转行使用union或union all来实现。这样做其实有点麻烦,而在oracle数据中,专门提供了这样的函数来实现行列转置功能。通用SQL行列转置1、行转列先准备好数据表stu_score,表中数据如下: 现在想要实现以下的效果: 通用的SQL
转载 2023-08-02 10:46:46
354阅读
字符串拼接方法1 :concat 函数 : CONCAT(CHAR1,CHAR2)   特点:只能拼接两个字符串,也可以使用嵌套的方式拼接多个。嵌套方法:方法2 :|| 拼接 :   现有一张省级架构表,需要把字段归为 “100001 省公司” 的样式: || 拼接:相比concat函数使用更方便,可以在拼接字段之间添加想要的内容。listagg函
转载 2023-12-25 07:38:15
198阅读
1. 前提固定行数 如:固定前10行等。IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[FUN_GET_工程番号SQL]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[FUN_GET_工程番号SQL]
转载 2023-11-30 18:23:26
144阅读
我们在写Sql语句的时候没经常会遇到将查询结果行转列,转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法。但是这样做实现起来非常复杂,而在SqlServer2005中我们有了PIVOT/UNPIVOT函数可以快速实现行转列和转行的操作。 PIVOT函数,行转列 PIVOT函数的格式如下 PIVOT(<聚合函数>
以下转自:http://dacoolbaby.iteye.com/blog/1698957  作者: dacoolbaby这是一个Oracle转行函数:LISTAGG()先看示例代码:Sql代码  withtempas(  select'China' nation ,'Guangzhou' city from dual unionallselect'China'
转载 精选 2014-04-24 23:02:11
3124阅读
本文来源于:dacoolbaby 的 这是一个Oracle转行函数:LISTAGG() 1 with temp as( 2 select 'China' nation ,'Guangzhou' city from dual union all 3 select 'China' nation ,'Shanghai' city from dual union all 4 s...
转载 2021-07-19 13:48:21
552阅读
一、业务场景 今天需要实现一个table,有一的效果是:用户姓名A(账号a),用户姓名B(账号b)...这种格式。这就想到oracle转行...
原创 2022-07-01 21:57:48
389阅读
--Oracle转行函数LISTAGG() with tb_temp as( select 'China' 国家,'Wuhan' 城市 from dual union all select 'China' 国家,'Dongjing' 城市 from dual u
原创 2024-09-06 11:28:20
139阅读
select down.downparaversionid || '|' || e.unionno,       down.downparaversion,       e.unionno,       listagg(o.organname, ',') within group
原创 2017-10-19 08:54:15
1584阅读
--行列互转 /****************************************************************************************************************************************************** 以学生成绩为例子,比较形象易懂 整理人:中国风(Roy) 日期:2008.06
```mermaid erDiagram CUSTOMER ||--o| ORDER : places ORDER ||--| PRODUCT : contains ``` ```mermaid pie title Distribution of Development Experience "Junior Developer" : 15
原创 2024-04-10 05:07:10
61阅读
select XMLAGG(XMLELEMENT(表字段 || ',')).EXTRACT('//text()') .getclobval() from 表 ...
转载 2021-08-30 17:27:00
564阅读
2评论
表结构:1 A1 B1 C2 A2 B3 C3 F4 D转换后变成:1 A,B,C2 A,B3 C,F4 D答案假设你的表结构是tb_name(id, remark),则语句如下:SELECT a.id, wm_concat (a.remark) new_resultFROM tb_name agroup by a.id
it
转载 2011-10-29 18:13:00
569阅读
2评论
select Monthno 月份, SUM(thismonthacttotal) "总活跃用户数",
原创 7月前
40阅读
mysql实现行转列,转行 实操一, 行转列提示: 使用case…when或if语句分情况查询数据,group by和sum/max进行筛选新建学生表,如下CREATE TABLE `student` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `subject` varchar(255) DEFAULT NU
转载 2023-05-22 11:46:13
1200阅读
1.新建一个名为TEST表2.向TEST表中添加数据INSERT INTO TEST(STUDENT,COURSE,SCORE)select '张三','语文',78 from dual unionselect '张三','数学',87 from dual union select '张三','英语',82 from dual unionselect '张三','物
转载 2022-06-16 06:50:39
383阅读
本文介绍两种行、转换方法,一种是常规的SQL,一种是ORACLE 11G提供的函数。下面使用一个小例子对这两种方法进行说明。---------------------------------原始表----------------------------------SQL> select * from cj1;NAME  KM        
原创 2012-03-19 10:55:05
10000+阅读
一、Pivot和UnPivot介绍1.Pivot介绍PIVOT用于将值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数() FOR in (…) )AS P完整语法:table_sourcePIVOT(聚合函数(value_column)FOR pivot_columnIN(<column
转载 2024-02-18 14:56:20
483阅读
CREATETABLE[Test]([id][int]IDENTITY(1,1)NOTNULL,[name][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,[subject][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,[Source][numeric](18,0)NULL)ON[PRIMARY]GOINSERTINTO[test]([name],[subject],[Source])values(N'张三',N'语文',60)INSERTINTO[test]([name],[subject],[Source])va
转载 2007-03-21 23:18:00
158阅读
2评论
SQL Server转行SQL实现转行UNPIVOT SQL实现转行今天在做一个需求的时候遇到了这个转行,原因是需要存几个固定的数据,类似于学生成绩,学科是固定的,分数是不固定的,为了不影响之前已经做好的功能,于是直接就把这几个字段固定到主表了。后面都已经做完了但是临时被通知又要改了,原因就是别的模块在使用的时候希望学科和分数是存在2个字段里面,而不是每个都分开了,这就。。。。。。 但
  • 1
  • 2
  • 3
  • 4
  • 5