社区
MS-SQL Server
帖子详情
▲▲▲紧急!数据显示问题???▲▲▲
lanxin7705
2003-12-15 10:39:20
我用一个ADOQuery控件查询两个字段,然后在报表的QRDBText中显示,请问如果我查询的数据集如果为空,如何让QRDBText设置的字段显示为0
大家有谁知道,麻烦向您请教一下!!!
...全文
89
4
打赏
收藏
▲▲▲紧急!数据显示问题???▲▲▲
我用一个ADOQuery控件查询两个字段,然后在报表的QRDBText中显示,请问如果我查询的数据集如果为空,如何让QRDBText设置的字段显示为0 大家有谁知道,麻烦向您请教一下!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjcxc
元老
2003-12-15
打赏
举报
回复
--将你的查询语句改为:
select IsNull(字段1,0) as 字段1,IsNull(字段2,0) as 字段2 from 表
lansquenet
2003-12-15
打赏
举报
回复
select (case 字段 when null then 0 else 字段 end) 字段名 form 表
dlpseeyou
2003-12-15
打赏
举报
回复
ISNULL
使用指定的替换值替换 NULL。
语法
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。
返回类型
返回与 check_expression 相同的类型。
注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。
示例
A. 将 ISNULL 与 AVG 一起使用
下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。
USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO
下面是结果集:
--------------------------
14.24
(1 row(s) affected)
B. 使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。
txlicenhe
2003-12-15
打赏
举报
回复
select IsNull(字段1,0) as 字段1,IsNull(字段2,0) as 字段2 from 表
Taobao oceanbase代码
//供学习用,禁止用于商业用途。 2012.04.20 OceanBase解决什么
问题
许多公司的核心资产是各种各样的商业
数据
,例如淘宝的商品、交易、订单、购物爱好等等,这些
数据
通常是结构化的,并且
数据
之间存在各种各样的关联,传统的关系
数据
库曾经是这些
数据
的最佳载体。然而,随着业务的快速发展,这些
数据
急剧膨胀,记录数从几千万条增加到数十亿条,
数据
量从百GB增加到数TB,未来还可能增加到数千亿条和数百TB,传统的关系型
数据
库已经无法承担如此海量的
数据
。OceanBase解决不断增加的结构化
数据
存储与查询的
问题
。 从Eric Brewer教授的CAP(一致性C: Consistency, 可用性A: Availability,分区容错性P: Tolerance of network Partition)理论角度分析,作为电子商务企业,淘宝和其他公司的业务对一致性和可用性的要求高于分区容错性,
数据
特征是
数据
总量庞大且逐步增加,单位时间内的
数据
更新量并不大,但实时性要求很高。这就要求我们提供一套更加偏重于支持CA特性的系统,同时兼顾可分区性,并且在实时性、成本、性能等方面表现良好。 OceanBase的架构 OceanBase的逻辑架构简图
▲
OceanBase架构的一些基本概念 主键 row key,也称为primary key,类似于DBMS的主键,与DBMS不同的是,OceanBase的主键总是二进制字符串(binary string),但可以有某种结构。OceanBase以主键为顺序存放表格
数据
sstable 一种
数据
存储格式,OceanBase用来存储一个或几个表的一段按主键连续的
数据
tablet 一个表按主键划分的一个(前开后闭的)范围,通常包含一个或几个sstable,一个tablet的
数据
量通常在256MB左右 基准
数据
和动态
数据
OceanBase以增量方式记录一段时间内的表格
数据
的增删改,从而保持着表格主体
数据
在一段时间内相对稳定,其中增删改的
数据
称为动态
数据
(通常在内存,也称为内存表),而一段时间内相对稳定的主体
数据
称为基准
数据
,基准
数据
和转储后(保存到SSD固态盘或磁盘)的动态
数据
以sstable格式存储 ChunkServer 保存基准
数据
的服务器,通常是多台,为了避免软件硬件故障导致的服务中断,同一份基准
数据
通常保存了3份并存储在不同ChunkServer上 UpdateServer 保存动态
数据
的服务器,一般是单台服务器。为了避免软件硬件故障导致的服务中断,UpdateServer记录commit log并通常使用双机热备 MergeServer 进行静态动态
数据
合并的服务器,常常与ChunkServer共用一台物理服务器。MergeServer使得用户能够访问到完整的最新的
数据
RootServer 配置服务器,一般是单台服务器。为了避免软件硬件故障导致的服务中断,RootServer记录commit log并通常采用双机热备。由于RootServer负载一般都很轻,所以它常常与UpdateServer共用物理机器 冻结 指动态
数据
(也称为内存表)的更新到一定时间或者
数据
量达到一定规模后,OceanBase停止该块动态
数据
的修改,后续的更新写入新的动态
数据
块(即新的内存表),旧的动态
数据
块不再修改,这个过程称为冻结 转储 出于节省内存或者持久化等原因将一个冻结的动态
数据
块(内存表)持久化(转化为sstable并保存到SSD固态盘或磁盘上)的过程
数据
合并(merge) 查询时,查询项的基准
数据
与其动态
数据
(即增删改操作)合并以得到该
数据
项的最新结果的过程。此外,把旧的基准
数据
与冻结的动态
数据
进行合并生成新的基准
数据
的过程也称为
数据
合并 联表(join) 一张表与另一张或几张表基于主键的左连接关系,类似于DBMS的自然连接 COW Copy on Write的缩写,在OceanBase中特指BTree在更新时复制
数据
备份写入,避免系统锁的技术手段 OceanBase的特点 OceanBase功能 OceanBase设计和实现的时候暂时摒弃了不
紧急
的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前OceanBase主要解决
数据
更新一致性、高性能的跨表读事务、范围查询、join、
数据
全量及增量dump、批量
数据
导入。 OceanBase
数据
访问特点 虽然
数据
总量比较大,但跟许多行业一样,淘宝业务一段时间(例如小时或天)内
数据
的增删改是有限的(通常一天不超过几千万次到几亿次),根据这个特点,OceanBase把一段时间内的增删改等修改操作以增量形式记录下来(称之为动态
数据
,通常保存在内存中),这样也使得了主体
数据
在一段时间内保持了相对稳定(称之为基准
数据
)。 由于动态
数据
相对较小,通常情况下,OceanBase把它保存在独立的服务器UpdateServer的内存中。以内存保存增删改记录极大地提高了系统写事务的性能。此外,假如每条修改平均消耗100 Bytes,那么10GB内存可以记录100M(即1亿)条修改,且扩充UpdateServer内存即增加了内存中容纳的修改量。不仅如此,由于冻结后的内存表不再修改,它也可以转换成sstable格式并保存到SSD固态盘或磁盘上。转储到SSD固态盘后所占内存即可释放,并仍然可以提供较高性能的读服务,这也缓解了极端情况下UpdateServer的内存需求。为了应对机器故障,动态
数据
服务器UpdateServer写commit log并采取双机(乃至多机)热备。由于UpdateServer的主备机是同步的,因此备机也可同时提供读服务。 因为基准
数据
相对稳定,OceanBase把它按照主键(primary key,也称为row key)分段(即tablet)后保存多个副本(一般是3个)到多台机器(ChunkServer)上,避免了单台机器故障导致的服务中断,多个副本也提升了系统服务能力。单个tablet的尺寸可以根据应用
数据
特点进行配置,相对配置过小的tablet会合并,过大的tablet则会分裂。 由于tablet按主键分块连续存放,因此OceanBase按主键的范围查询对应着连续的磁盘读,十分高效。 对于已经冻结/转储的动态
数据
,OceanBase的ChunkServer会在自己不是太繁忙的时候启动基准
数据
与冻结/转储内存表的合并,并生成新的基准
数据
。这种合并过程其实是一种范围查询,是一串连续的磁盘读和连续的磁盘写,也是很高效的。 传统DBMS提供了强大的事务性、良好的一致性和很短的查询修改响应时间,但
数据
规模受到严重制约,缺乏扩展性;现代云计算提供了极大的
数据
规模、良好的扩展性,但缺乏跨行跨表事务、
数据
一致性也较弱、查询修改响应时间通常也较长,OceanBase的设计和实现融合了二者的优势: -------------------------------------------------------------------------------- UpdateServer:类似于DBMS中的DB角色,提供跨行跨表事务和很短的查询修改的响应时间以及良好的一致性。 ChunkServer:类似于云计算中的工作机(如GFS的chunk server),具有
数据
多副本(通常是3)、中等规模
数据
粒度(tablet大小约256MB)、自动负载平衡、宕机恢复、机器plug and play等特点,系统容量及性能可随时扩展。 MergeServer:结合ChunkServer和UpdateServer,获得最新
数据
,实现
数据
一致性。 RootServer:类似于云计算中的主控机(如GFS master),进行机器故障检测、负载平衡计算、负载迁移调度等。 -------------------------------------------------------------------------------- 上述的DBMS和云计算技术的优势互补使得OceanBase既具有传统DBMS的跨行跨表事务、
数据
的强一致性以及很短的查询修改响应时间,还有云计算的海量
数据
管理能力、自动故障恢复、自动负载平衡以及良好的扩展性。 OceanBase当前在淘宝的应用 OceanBase现在已经应用于淘宝收藏夹,用于存储淘宝用户收藏条目和具体的商品、店铺信息,每天支持4~5千万的更新操作。等待上线的应用还包括CTU、SNS等,每天更新超过20亿,更新
数据
量超过2.5TB,并会逐步在淘宝内部推广,也期待外部合作者。 主要的性能
数据
测试软硬件环境 Red Hat Enterprise Linux Server release 5.4 (Tikanga) gcc version 4.1.2 20080704 (Red Hat 4.1.2-46) Intel(R) Xeon(R) CPU E5520 @ 2.27GH ChunkServer & MergeServer:Memory 16GB Disk 300GB SAS*10 NO Raid UpdateServer & RootServer:Memory 48GB Disk 300GB SAS*6 Raid1 测试环境部署简图
▲
测试
数据
规模 21亿条
数据
,基准
数据
3备份。 测试Schema 两张表,其中表1中有21列,表2中11列。 其中表1中的11列和表2中的11列存在join关系。 单条记录大小为500字节。 测试性能曲线图 Range
数据
查询
▲
单条
数据
查询
▲
当压力最大时,ChunkServer单台输出
数据
90MB/S,已经接近了千兆网卡的极限 更新
数据
▲
某某X大
数据
中心机房建设设计技术方案设计.doc
某某X大
数据
中心机房建设设计技术方案设计.doc
万能试验机原理及操作.doc
万能试验机原理及操作.doc
智能编程定时器操作说明.doc
智能编程定时器操作说明
ZT管理员破解申请表
中控科技考勤机 管理员密码因员工离职或遗忘 忘记UF100考勤机管理密码 可申请破解找回
MS-SQL Server
34,872
社区成员
254,639
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章