问题1:IF OBJECT_ID('Table_Name') IS NOT NULL
drop table Table_Name
与
if exists (select * from sysobjects where name = 'Table_Name' and xtype = 'U')
drop table 'Table_Name'
什么区别?哪个更好?
貌似第一种支持所有的对象(检测对象是否存在)问题2:SELECT COUNT(A0107) '总人数' ,
SUM(CASE WHEN A0107 = '男' THEN 1
ELSE 0
END) '男人数' ,
SUM(CASE WHEN A0107 = '男' THEN 1
ELSE 0
END) * 1.0 / COUNT(*) '男所占比率' ,
SUM(CASE WHEN A0107 = '女' THEN 1
ELSE 0
END) '女人数' ,
SUM(CASE WHEN A0107 = '女' THEN 1
ELSE 0
END) * 1.0 / COUNT(*) '女所占比率'
FROM dbo.A01
中的SUM(CASE WHEN A0107 = '男' THEN 1
ELSE 0
END) '男人数'
是什么个算法?意思是 把每次的为真的次数相加,然后得出总数?
sum(1 + 1 + 1 + ...),是这个意思吗?
万分感谢!!!
drop table Table_Name
与
if exists (select * from sysobjects where name = 'Table_Name' and xtype = 'U')
drop table 'Table_Name'
什么区别?哪个更好?
貌似第一种支持所有的对象(检测对象是否存在)问题2:SELECT COUNT(A0107) '总人数' ,
SUM(CASE WHEN A0107 = '男' THEN 1
ELSE 0
END) '男人数' ,
SUM(CASE WHEN A0107 = '男' THEN 1
ELSE 0
END) * 1.0 / COUNT(*) '男所占比率' ,
SUM(CASE WHEN A0107 = '女' THEN 1
ELSE 0
END) '女人数' ,
SUM(CASE WHEN A0107 = '女' THEN 1
ELSE 0
END) * 1.0 / COUNT(*) '女所占比率'
FROM dbo.A01
中的SUM(CASE WHEN A0107 = '男' THEN 1
ELSE 0
END) '男人数'
是什么个算法?意思是 把每次的为真的次数相加,然后得出总数?
sum(1 + 1 + 1 + ...),是这个意思吗?
万分感谢!!!
解决方案 »
- 事物 EXCEL导入SQL
- Reporting Services 错误??
- 把全部行 放在一起(有图)
- sql server2008r2问题,急急急
- 创建视图的问题
- 请教高手解决!字符表的问题!谢谢!
- 各位大侠, 用SQL Server2000时如果数据库中有几百万条记录的话,如何设计和处理?
- 疑难问题~~,请各位高手指点~~!可追加分!--sqlserver/excel批量处理问题
- 请大虾给个例子:偶想在DELTAIL表中创建外键,看了英文帮助,还是不会,哪位大虾出手写个小例子?
- 继续问 关于 SELECT count(*) AS CT FROM @TABLE
- 求指导
- sql server 2008 分区表效率的疑问
SUM(@isMan) = 男人总数
都支持所有對象,只是sysobjects按xtype區分不同的數據庫對象類型
2.SUM(CASE WHEN A0107 = '男' THEN 1
ELSE 0
END) '男人数'
統計所有A0107列的值為男的數量
--问题1
OBJECT_ID是系统函数,返回架构范围内对象的数据库对象标识号
sysobjects包含该数据库中的所有对象,如表 存储过程 视图 等信息
IF OBJECT_ID('Table_Name') IS NOT NULL
drop table Table_Name
与
if exists (select * from sysobjects where name = 'Table_Name' and xtype = 'U')
drop table 'Table_Name'
就相当于是分别根据名字和编号区别一个实体表,第一个更简洁。
--问题2
你的理解没问题,就是判断条件为真的,就记录一次,最后sum求所有条件为真的记录的和