-->Title:Generating test data
-->Author:wufeng4552
-->Date :2009-09-30 15:16:26
if object_id('tb')is not null drop table tb
go
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',null
UNION ALL SELECT 'a',null
UNION ALL SELECT 'b',null
UNION ALL SELECT 'b',null
declare @col1 varchar(10)
declare @col2 int
update tb set @col2=case when @col1=col1 then @col2+1 else 1 end,
@col1=col1,col2=@col2
--每组 <=2 条的合并
select col1,
col2=ltrim(min(col2))+case when count(*)=1 then ''
else ','+ltrim(max(col2)) end
from tb group by col1
/*
col1 col2
---------- -------------------------
a 1,2
b 1,2
*/
--每组 <=3 条的合并
insert tb select 'b',3
select col1,
col2=CAST(MIN(col2) as varchar)
+CASE
WHEN COUNT(*)=3 THEN ','
+CAST((SELECT col2 FROM tb WHERE col1=a.col1 AND col2 NOT IN(MAX(a.col2),MIN(a.col2))) as varchar)
ELSE ''
END
+CASE
WHEN COUNT(*)>=2 THEN ','+CAST(MAX(col2) as varchar)
ELSE ''
END
from tb a group by col1
/*
col1 col2
---------- ---------------------
a 1,2
b 1,2,3
*/
if object_id('tempdb..#')is not null drop table #
go
select col1,
ltrim(col2)col2
into # from tb order by col1,col2
declare @col1 varchar(10)
declare @col2 varchar(20)
update # set @col2=case when @col1=col1 then @col2+','+col2 else col2 end,
@col1=col1,
col2=@col2
go
select col1,
max(col2)col2
from # group by col1
/*
col1 col2
---------- ------------
a 1,2
b 1,2,3
*/
分享到:
相关推荐
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. ...
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. ...
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. ...
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10...
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. ...
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10...
表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 ...
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. ...
10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. ...
│ │ 3.3 各种字符串合并处理示例.sql │ │ 3.4.1 分段截取函数.sql │ │ 3.4.2 分段更新函数.sql │ │ 3.4.3 IP地址处理函数.sql │ │ 3.5.1 字符串比较函数.sql │ │ 3.5.2 字符串并集&交集处理示例.sql │ ...
varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...
纵.sql │ 复杂年月处理.sql │ 统计--交叉表+日期+优先.sql │ ├─第03章 │ │ 3.2 各种字符串分拆处理函数.sql │ │ 3.3 各种字符串合并处理示例.sql │ │ 3.4.1 分段截取函数....
实例107 使用字符串输出对象 132 实例108 简化toString()方法的重写 133 5.6 克隆与序列化 134 实例109 Java对象的假克隆 134 实例110 Java对象的浅克隆 135 实例111 Java对象的深克隆 137 实例112 序列化与对象克隆...
大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...