当前位置:首页 » 编程语言 » 如何用sql语句统计表字段数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何用sql语句统计表字段数

发布时间: 2023-01-20 02:27:38

⑴ 怎么用sql语句得到一个表的字段数

用一个查询打开表后,可以根据TADOQuery控件的FieldCount属性来获得字段个数。
MySql:='Select * From MyTBName ';
ADOQ_Fields.Close;
ADOQ_Fields.SQL.Clear;
ADOQ_Fields.SQL.Add(MySql);
ADOQ_Fields.Open;
SBar.Panels[2].Text:='共计:'+IntToStr(ADOQ_Fields.FieldCount)+'条字段';
如果你想得到每个字估的类型,可以对字段进行一下遍历。
放一个TValueListEditor控件,命名为VLEditor_Fields,用来存放字段信息。

VLEditor_Fields.Strings.Clear;
For i:=0 to ADOQ_Fields.FieldCount-1 DO
Begin
case ADOQ_Fields.FieldByName(ADOQ_Fields.Recordset.Fields.Item[i].Name).DataType of
ftUnknown: FieldType :='ftUnknown';
ftString: FieldType :='ftString';
ftSmallint: FieldType :='ftSmallint';
ftInteger: FieldType :='ftInteger';
ftWord: FieldType :='ftWord';
ftBoolean: FieldType :='ftBoolean';
ftFloat: FieldType :='ftFloat';
ftCurrency: FieldType :='ftCurrency';
ftBCD: FieldType :='ftBCD';
ftDate: FieldType :='ftDate';
ftTime: FieldType :='ftTime';
ftDateTime: FieldType :='ftDateTime';
ftBytes: FieldType :='ftBytes';
ftVarBytes: FieldType :='ftVarBytes';
ftAutoInc: FieldType :='ftAutoInc';
ftBlob: FieldType :='ftBlob';
ftMemo: FieldType :='ftMemo';
ftGraphic: FieldType :='ftGraphic';
ftFmtMemo: FieldType :='ftFmtMemo';
ftParadoxOle: FieldType :='ftParadoxOle';
ftDBaseOle: FieldType :='ftDBaseOle';
ftTypedBinary: FieldType :='ftTypedBinary';
ftCursor: FieldType :='ftCursor';
ftFixedChar: FieldType :='ftFixedChar';
ftWideString: FieldType :='ftWideString';
ftLargeint: FieldType :='ftLargeint';
ftADT: FieldType :='ftADT';
ftArray: FieldType :='ftArray';
ftReference: FieldType :='ftReference';
ftDataSet: FieldType :='ftDataSet';
ftOraBlob: FieldType :='ftOraBlob';
ftOraClob: FieldType :='ftOraClob';
ftVariant: FieldType :='ftVariant';
ftInterface: FieldType :='ftInterface';
ftIDispatch: FieldType :='ftIDispatch';
ftGuid: FieldType :='ftGuid';
ftTimeStamp: FieldType :='ftTimeStamp';
ftFMTBcd: FieldType :='ftFMTBcd';
else FieldType :='';
end;
VLEditor_Fields.InsertRow(ADOQ_Fields.Recordset.Fields.Item[i].Name,FieldType ,True);
End;

⑵ 怎么通过一个sql语句查询一个表中字段的个数

select
a.name
,count(0)字段总数
from
sys.objectsa
innerjoinsys.all_columnsbona.object_id=b.object_id
where
a.type='U'anda.name='表名'
groupby
a.name

修改“表名”为实际需要查询的表名即可

⑶ 如何统计SQL中某字段总数和符合某条件的数量

输入代码

select 名称
,count(*) as 总数量
,count(case when 类型='A' then 类型 else null end) as 类型为A的数
from 表名
group by 名称。

就可以统计SQL中某字段总数和符合某条件的数量。

⑷ 请问怎么用SQL语句统计一个表有多少个字段谢谢!

这个简单,用系统表就可以了,以数据库Northwind的Employees表为例,SQL语句如下:
use Northwind
select count(*) AS 字段数
from syscolumns
where id = (select id from sysobjects where name='Employees')

⑸ 用sql语句统计数据库某个字段中相同的数据有多少条

1、可通过分组和组内计数来实现,语句如下:

select a, count(*) from A Group by a

2、用Group By分组:

Group By + [分组字段](可以有多个)。在执行了这个操作以后,数据集将根据分组字段的值将一个数据集划分成各个不同的小组。

这里,分组字段是a,所以数据集分成了你、我、他三个组。然后用Count(*)分别按照各个组来统计各自的记录数量。

3、Count(*)函数:

Count(*) 函数返回表中的记录数。注意它和Group by连用,返回组内记录数。

(5)如何用sql语句统计表字段数扩展阅读:

select count(*)和select count(1)的区别

一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的。

假如表没有主键(Primary key), 那么count(1)比count(*)快。

如果有主键的话,那主键作为count的条件时候count(主键)最快。

如果你的表只有一个字段的话那count(*)就是最快的。

count(*) 跟 count(1) 的结果一样,都包括对NULL的统计,而count(column) 是不包括NULL的统计。

网络.Group by

⑹ 怎么通过一个sql语句查询一个表中字段的个数

select
a.name
,count(0)字段总数
from
sys.objectsa
innerjoinsys.all_columnsbona.object_id=b.object_id
where
a.type='U'anda.name='表名'
groupby
a.name

修改逗表名地为实际需要查询的表名即可

⑺ 怎么通过一个sql语句查询一个表中字段的个数

select
a.name
,count(0) 字段总数
from
sys.objects a
inner join sys.all_columns b on a.object_id=b.object_id
where
a.type='U' and a.name='表名'
group by
a.name
修改逗表名地为实际需要查询的表名即可

⑻ 如何用sql语句看表有多少个字段

select count(*) from user_tab_columns where table_name=upper('表名')
或者
select max(column_id) from user_tab_columns where table_name=upper('表名')
也行。
这只是查询个数。

⑼ sql 查询怎么统计多个字段各自的个数

--所有算的地方都用cast(个数asint)
createtabletest05
(avarchar(10),
bvarchar(10),
cvarchar(10))

insertintotest05select'#','一','三'unionall
select'@','一','三'unionall
select'¥','一','二'unionall
select'%','二','二'
select*fromtest05

selectb,COUNT(b)个数fromtest05groupbyb
selectc,COUNT(c)个数fromtest05groupbyc

selectSUM(isnull(t1.个数,0)+isnull(t2.个数,0))总数,sum(isnull(t1.个数,0))个数,t1.b,sum(isnull(t2.个数,0))个数,t2.cfrom
(selectb,COUNT(b)个数fromtest05groupbyb)ast1fulljoin
(selectc,COUNT(c)个数fromtest05groupbyc)ast2ont1.b=t2.c
groupbyt1.b,t2.c