SqlServer中這樣統(tǒng)計(jì):
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、鐵西網(wǎng)站維護(hù)、網(wǎng)站推廣。
select name from sysobjects where xtype='U'
要知道總數(shù)的話就簡(jiǎn)單了:
select count(*) from sysobjects where xtype='U'
Oracle中這樣查詢:
Select * From user_tables;
select?a.plate_number?車牌,isnull(b.超速,0)超速,isnull(c.超載,0)超載?
from?car_report?a?left?join
(select?plate_number,COUNT(*)?as?超速?from?exceed_report?group?by?plate_number)?b?
on?a.plate_number=b.plate_number?left?join?
(select?plate_number,COUNT(*)?as?超載?from?associat_report?group?by?plate_number)?c?
on?a.plate_number=c.plate_number
--查詢所有用戶定義表
select?*?from?sys.objects?Where?type='U'?And?type_desc='USER_TABLE'
--用戶定義表個(gè)數(shù)
select?Count(0)?as?'用戶定義表的個(gè)數(shù)'?from?sys.objects?Where?type='U'?And?type_desc='USER_TABLE'
sys.object是系統(tǒng)表,記錄用戶創(chuàng)建了哪些對(duì)象,這個(gè)表里會(huì)存:表、索引、存儲(chǔ)過(guò)程、函數(shù)
不過(guò)sys.object只有08及其以后的版本才支持,05及以前的版本都是用的Sysobjects
名字差不多,性質(zhì)一樣
查數(shù)據(jù)庫(kù)ProjectsA中的表數(shù)量寫上完全限定名就好了
ProjectsA.sys.sysobjects,其他的和之前一樣
select?*?from?ProjectsA.sys.sysobjects?Where?type='U'?And?type_desc='USER_TABLE'
select?Count(0)?from?ProjectsA.sys.sysobjects?Where?type='U'?And?type_desc='USER_TABLE'
至于status的作用,看這里
select?'分公司ID',COUNT(*)?AS?'訂單數(shù)量'?from?Orders?
where?OrderTimeCONVERT(nvarchar(10),year(GETDATE()))+'-'+CONVERT(nvarchar(10),month(GETDATE()))+'-01'
and?OrderTimeGETDATE()
group?by?'分公司ID'
1、查詢SQL中的所有表: Select TABLE_NAME FROM 數(shù)據(jù)庫(kù)名稱.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 執(zhí)行之后,就可以看到數(shù)據(jù)庫(kù)中所有屬于自己建的表的名稱 2、查詢SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查詢分析器,還有一個(gè)簡(jiǎn)單的查詢方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 執(zhí)行完之后,就可以看到數(shù)據(jù)庫(kù)中所有用戶表的信息 4、查詢總存儲(chǔ)過(guò)程數(shù):select count(*) 總存儲(chǔ)過(guò)程數(shù) from sysobjects where xtype='p' 附:xtype類型D = 默認(rèn)值或 DEFAULT 約束
F = FOREIGN KEY 約束L = 日志FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)
P = 存儲(chǔ)過(guò)程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復(fù)制篩選存儲(chǔ)過(guò)程S = 系統(tǒng)表TF = 表函數(shù)
TR = 觸發(fā)器U = 用戶表UQ = UNIQUE 約束(類型是 K)V = 視圖X = 擴(kuò)展存儲(chǔ)過(guò)程 另:在sqlserver中取得某個(gè)數(shù)據(jù)庫(kù)中所有表名的sql語(yǔ)句 select sysobjects.name from sysobjects.xtype ='U';SELECT name
WHERE (xtype = 'U') 在數(shù)據(jù)庫(kù)的sysobjects表里有這個(gè)數(shù)據(jù)庫(kù)全部表的信息, xtype值為'U'的就是表名 注意:一般通過(guò)上述方法獲得全部用戶表示都會(huì)有一個(gè)dtproperties表,SQLSERVER 默認(rèn)它也是用戶表,想要從用戶表中排出,需要加上限定條件 status0,即:select * from sysobjects where xtype='U' and status0
可以有兩種解決方法,
所需工具:SQL
查詢兩個(gè)count的方法1:
SELECT paperName , COUNT (1) AS 總題數(shù) , sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 審核題數(shù)FROM questionGROUP BY paperNme
查詢兩個(gè)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), 這個(gè)條件可以不要了group by paperNme, stauts -- status也要作為分組字段,因?yàn)樵赾ase中有使用) s