赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索

快速掌握化解字符串不能超过8000的方法 (1)

发布时间:2007.08.08 04:53     来源:赛迪网    作者:nazha

经常有人提到,用动态生成SQL语句的方法处理数据时,处理语句超长,无法处理的问题。

下面我们来讨论这个问题:

/*-- 数据测试环境 --*/
if exists (select * from dbo.sysobjects 
where id = object_id(N'[tb]') and 
OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [tb]
GO

create table tb(单位名称 varchar(10),
日期 datetime,销售额 int)
insert into tb
select 'A单位','2001-01-01',100
union all select 'B单位','2001-01-02',101
union all select 'C单位','2001-01-03',102
union all select 'D单位','2001-01-04',103
union all select 'E单位','2001-01-05',104
union all select 'F单位','2001-01-06',105
union all select 'G单位','2001-01-07',106
union all select 'H单位','2001-01-08',107
union all select 'I单位','2001-01-09',108
union all select 'J单位','2001-01-11',109

/*-- 要求结果
日期 A单位 B单位 C单位 D单位 E单位
---------- ----- ----- ----- ----- 

 F单位 G单位 H单位 I单位 J单位 
----- ----- ---- ---- ---- ------

2001-01-01 100 0 0 0 0 0 0 0 0 0
2001-01-02 0 101 0 0 0 0 0 0 0 0
2001-01-03 0 0 102 0 0 0 0 0 0 0
2001-01-04 0 0 0 103 0 0 0 0 0 0
2001-01-05 0 0 0 0 104 0 0 0 0 0
2001-01-06 0 0 0 0 0 105 0 0 0 0
2001-01-07 0 0 0 0 0 0 106 0 0 0
2001-01-08 0 0 0 0 0 0 0 107 0 0
2001-01-09 0 0 0 0 0 0 0 0 108 0
2001-01-11 0 0 0 0 0 0 0 0 0 109
--*/

/*-- 常规处理方法 declare @sql varchar(8000) set @sql='select 日期=convert(varchar(10),日期,120)' select @sql=@sql+',['+单位名称 +']=sum(case 单位名称 when '''+单位名称+''' then 销售额 else 0 end)' from(select distinct 单位名称 from tb) a exec(@sql+' from tb group by convert(varchar(10),日期,120)') --*/

问题

如果单位很多,这时,@SQL的值就会被截断,从而出错。

1 2 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· String和stringBuffer类字符串的区别 (03-27) · 浅谈 DotNet 保护中字符串加密的技术 (03-05)
· SQL Server 数据库连接字符串的声明 (11-28) · 排忧解难:无线网关设备使用和调试方法 (07-19)
· Java基础-随机数字 浮点数 字符串产生 (06-05) · 招招致命!笔记本电脑死穴及防范方法 (04-10)
· 关于木马隐藏在Windows中的新方法 (04-06) · 小窍门—电脑硬件资源的冲突与解决方法 (04-06)
· 介绍几种鉴别光缆优劣程度的简单方法 (04-04) · 谈刷新主板BIOS的几种经典和常用方法 (04-04)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管