如何在SQL Server中筛选仅数值类型的列名及对应数据类型
解决SQL Server筛选指定数值列及其数据类型的问题
嘿,我来帮你调整SQL语句,刚好能满足你只获取ID、Profit、Sales这几列及其对应数据类型的需求~
方案1:手动指定目标列
如果你已经明确知道要哪几列,直接在原查询的WHERE子句里加上列名过滤条件就行:
SELECT column_name AS [Columname], data_type AS [Data_Type] FROM information_schema.columns WHERE table_name = 'ExTable' -- 替换成你的实际表名 AND column_name IN ('ID', 'Profit', 'Sales');
这个语句会精准返回你指定的三列信息,不会包含Customername、Country这类非目标列。
方案2:自动筛选所有数值类型列
如果之后你想动态获取表中所有数值类型的列(不用手动列名),可以通过过滤data_type实现。SQL Server常见的数值类型包括int、decimal、numeric、float等,语句如下:
SELECT column_name AS [Columname], data_type AS [Data_Type] FROM information_schema.columns WHERE table_name = 'ExTable' -- 替换成你的实际表名 AND data_type IN ('int', 'decimal', 'numeric', 'float', 'real', 'bigint', 'smallint', 'tinyint');
这样不管表后续新增什么数值列,都能自动被筛选出来,适合列较多或需要动态查询的场景。
针对你的示例表ExTable,执行方案1的语句后,返回结果大概是这样的:
| Columname | Data_Type |
|---|---|
| ID | int |
| Profit | int |
| Sales | int |
内容的提问来源于stack exchange,提问作者prabhu
相关产品推荐
相关产品推荐

