重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以有两种解决方法,
创新互联公司主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销推广、网站程序开发、HTML5响应式网站建设、移动网站建设、微商城、网站托管及成都企业网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为不锈钢雕塑行业客户提供了网站营销推广服务。
所需工具:SQL
查询两个count的方法1:
SELECT paperName , COUNT (1) AS 总题数 , sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数FROM questionGROUP BY paperNme
查询两个count的方法2:
select s.总题数, s.审核题数, s.paperNamefrom (select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperNamefrom question--where papername in (select distinct paperName from question), 这个条件可以不要了group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用) s
在
SQL
Server
安装开始前,Microsoft
SQL
Server
安装程序中的安装配置检查器
(SCC)
会验证计数器注册表项的值。如果
SCC
无法验证现有的注册表项,或
SCC
无法运行
lodctr.exe
系统程序,则
SCC
检查会失败,致使安装受阻。
错误编辑注册表会严重损坏您的系统。更改注册表项之前,建议您备份计算机中的所有重要数据。
1.在
Microsoft
Windows
2003
或
Windows
XP
桌面上,依次单击“开始”、“运行”,然后在“打开”中键入
regedit.exe,再单击“确定”。在
Windows
2000
中,使用
regedt32.exe
启动注册表编辑器。
2.定位到以下注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib]
"Last
Counter"=dword:00000ed4
(5276)
"LastHelp"=dword:00000ed5
(5277)
3.上一步的“Last
Counter”值
(5276)
必须与以下注册表项中“Perflib\009”的“Counter”项的最大值匹配,并且上一步的“Last
Help”值
(5277)
必须与以下注册表项中“Perflib\009”的“Help”项的最大值匹配。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\009]
注意
009
是英文中的一个示例。“Last
Counter”和“Last
Help”值是由
Windows
动态分配的;这两个值会因计算机的不同而不同。
4.如有必要,可修改“\Perflib”项中的“Last
Counter”和“Last
Help”值的值:在右侧窗格中,右键单击“Last
Counter”或“Last
Help”,单击“修改”,再单击“Base
=
"Decimal"”,在“值数据”中设置值,再单击“确定”。如有必要,对另一个项重复以上过程,然后关闭注册表编辑器。
5.再次运行
SQL
Server
安装程序。
注意:上面所描述的009是存储英文版的mssql2005的计数器,而中文版的则是004!
在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:
1. convert(int,字段名) 例如:select convert(int,'3')
2. cast(字段名 as int) 例如:select cast('3' as int)
其实,一般情况下没有必要把字符串转换为数字类型
假如需要比较两个字段是否相等,但是一个字段为字符串类型,一个为数字类型,用“=”比较两个值是否相等时,SQL SERVER会自动把字符串转换为数字再比较的!
例如:
select da.TITLE_NAME,dsc.NAME
from dbo.DV_DUTY dd
inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)
left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')
where dd.AREA is not null
这个SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID为数字类型,dd.AREA为字符类型,相当于这样on(1='1')的判断,这时候就会自动吧字符串的'1'转换为数字类型再比较的。
但是也有弊端,一旦字符类型转换为数字类型出错(说明字符串的确就非数字组成的),SQL就会抛出异常。
SQL SERVER 2005中有判断字段是否为数字的函数:
ISNUMERIC(字段名) -----假如字段是数字类型返回1,不是就返回0
但是好像有的时候不好使,比如:select isnumeric('3,34') 就返回1
说明这个函数对字段值中全是数字但是数字间用“,”和“.”(逗号或点)隔开的都视为数字了!
解决办法:1、在MicrosoftWindows2003或WindowsXP桌面上,依次单击“开始”、“运行”,然后在“打开”中键入regedit.exe,再单击“确定”。在Windows2000中,使用regedt32.exe启动注册表编辑器。2、定位到以下注册表项:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib]找到里面的LastCounter和LastHelp,注意LastCounter和LastHelp值是由Windows动态分配的;这两个值会因计算机的不同而不同。我的分别是6760和6761。3、上一步的“LastCounter”值(6760)必须与以下注册表项中“Perflib\004”的“Counter”项的最大值匹配,并且上一步的“LastHelp”值(6761)必须与以下注册表项中“Perflib\004”的“Help”项的最大值匹配。[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib\004]注意004是简体中文中的一个示例,如果你安装的是英文版,对应的应该是:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib\009]4、比如说:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib\004中的Help,双击后打开编辑框,里面是:3Systemperformanceobject包含应用于计算机上不止一个组件处理器范例的计数器。5Memoryperformanceobject中间的都省略掉了6785写入所有数据源中的BLOB字节总数。6787在整个管道中使用的BLOB假脱机文件数。这个最后一个数值6787就应该对应Perflib中LastHelp的十进制数值。当然修改的时候别忘了选择十进制。5、关闭注册表编辑器6、再次运行SQLServer安装程序就应该没问题了。