可以有兩種解決方法,
創(chuàng)新互聯(lián)公司主要為客戶提供服務項目涵蓋了網(wǎng)頁視覺設計、VI標志設計、營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應式網(wǎng)站建設、移動網(wǎng)站建設、微商城、網(wǎng)站托管及成都企業(yè)網(wǎng)站維護、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務器租用、視頻、平面設計、SEO優(yōu)化排名。設計、前端、后端三個建站步驟的完善服務體系。一人跟蹤測試的建站服務標準。已經(jīng)為不銹鋼雕塑行業(yè)客戶提供了網(wǎng)站營銷推廣服務。
所需工具:SQL
查詢兩個count的方法1:
SELECT paperName , COUNT (1) AS 總題數(shù) , sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 審核題數(shù)FROM questionGROUP BY paperNme
查詢兩個count的方法2:
select s.總題數(shù), s.審核題數(shù), s.paperNamefrom (select COUNT(1) as 總題數(shù), case when status = 1 then count(1) else 0 end as 審核題數(shù), paperNamefrom question--where papername in (select distinct paperName from question), 這個條件可以不要了group by paperNme, stauts -- status也要作為分組字段,因為在case中有使用) s
在
SQL
Server
安裝開始前,Microsoft
SQL
Server
安裝程序中的安裝配置檢查器
(SCC)
會驗證計數(shù)器注冊表項的值。如果
SCC
無法驗證現(xiàn)有的注冊表項,或
SCC
無法運行
lodctr.exe
系統(tǒng)程序,則
SCC
檢查會失敗,致使安裝受阻。
錯誤編輯注冊表會嚴重損壞您的系統(tǒng)。更改注冊表項之前,建議您備份計算機中的所有重要數(shù)據(jù)。
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
是英文中的一個示例?!癓ast
Counter”和“Last
Help”值是由
Windows
動態(tài)分配的;這兩個值會因計算機的不同而不同。
4.如有必要,可修改“\Perflib”項中的“Last
Counter”和“Last
Help”值的值:在右側窗格中,右鍵單擊“Last
Counter”或“Last
Help”,單擊“修改”,再單擊“Base
=
"Decimal"”,在“值數(shù)據(jù)”中設置值,再單擊“確定”。如有必要,對另一個項重復以上過程,然后關閉注冊表編輯器。
5.再次運行
SQL
Server
安裝程序。
注意:上面所描述的009是存儲英文版的mssql2005的計數(shù)器,而中文版的則是004!
在SQL SERVER 2005中,將表中字符串轉換為數(shù)字的函數(shù)共2個:
1. convert(int,字段名) 例如:select convert(int,'3')
2. cast(字段名 as int) 例如:select cast('3' as int)
其實,一般情況下沒有必要把字符串轉換為數(shù)字類型
假如需要比較兩個字段是否相等,但是一個字段為字符串類型,一個為數(shù)字類型,用“=”比較兩個值是否相等時,SQL SERVER會自動把字符串轉換為數(shù)字再比較的!
例如:
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為數(shù)字類型,dd.AREA為字符類型,相當于這樣on(1='1')的判斷,這時候就會自動吧字符串的'1'轉換為數(shù)字類型再比較的。
但是也有弊端,一旦字符類型轉換為數(shù)字類型出錯(說明字符串的確就非數(shù)字組成的),SQL就會拋出異常。
SQL SERVER 2005中有判斷字段是否為數(shù)字的函數(shù):
ISNUMERIC(字段名) -----假如字段是數(shù)字類型返回1,不是就返回0
但是好像有的時候不好使,比如:select isnumeric('3,34') 就返回1
說明這個函數(shù)對字段值中全是數(shù)字但是數(shù)字間用“,”和“.”(逗號或點)隔開的都視為數(shù)字了!
解決辦法:1、在MicrosoftWindows2003或WindowsXP桌面上,依次單擊“開始”、“運行”,然后在“打開”中鍵入regedit.exe,再單擊“確定”。在Windows2000中,使用regedt32.exe啟動注冊表編輯器。2、定位到以下注冊表項:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib]找到里面的LastCounter和LastHelp,注意LastCounter和LastHelp值是由Windows動態(tài)分配的;這兩個值會因計算機的不同而不同。我的分別是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包含應用于計算機上不止一個組件處理器范例的計數(shù)器。5Memoryperformanceobject中間的都省略掉了6785寫入所有數(shù)據(jù)源中的BLOB字節(jié)總數(shù)。6787在整個管道中使用的BLOB假脫機文件數(shù)。這個最后一個數(shù)值6787就應該對應Perflib中LastHelp的十進制數(shù)值。當然修改的時候別忘了選擇十進制。5、關閉注冊表編輯器6、再次運行SQLServer安裝程序就應該沒問題了。