我试图将所有模式、表、列、不同列值和每个不同值的计数输出到一个新表。我从information.schema_columns
中找到了前三列(模式,表,列),但是最后两列不那么容易。
我尝试使用游标输出不同的列值和每个不同值的计数,但只能找到每列不同值的总数。
但是,我需要按每个值分组,并输出值本身和每个值的计数。
例如:
ValueCount简体:
DECLARE @SQL NVARCHAR(max) = '';
SELECT @SQL = @SQL
+ 'SELECT ''' + TABLE_SCHEMA + ''' AS SCHEMA_NAME, '''
+ TABLE_NAME + ''' AS TABLE_NAME, '''
+ COLUMN_NAME + ''' AS COL_NAME, '''
+ DATA_TYPE + ''' AS DATA_TYPE, CAST(['
+ COLUMN_NAME + '] AS NVARCHAR(4000)) AS [VALUE], COUNT(*) AS COUNT_VALUE FROM ['
+ TABLE_SCHEMA + '].[' + TABLE_NAME
+ '] GROUP BY [' + COLUMN_NAME + '] UNION ALL '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE NOT IN ('text', 'ntext', 'image')
AND CHARACTER_MAXIMUM_LENGTH >= 0;
SET @SQL = LEFT(@SQL, LEN(@SQL) - 10);
EXEC (@SQL);
这段代码由RoughPlace做的正是我所寻找的!
create Table #Temp
(tableName varchar(100),
columnName varchar(100),
value varchar(1000),
distinctItems int)
Declare @tabName as varchar(100)
Declare @colName as varchar(100)
Declare @tabid as int
Declare cursorTables Cursor
for
select t.object_id , t.name , c.name from sys.tables t inner join sys.columns c on t.object_id = c.object_id
open cursorTables
Fetch Next from cursorTables into
@tabid,@tabName,@colName
while @@Fetch_Status = 0
Begin
declare @query as nVarchar(1000)
set @query = 'Insert into #Temp SELECT ''' + @tabName + ''' , '''+ @colName +''', ' + @colName + ', COUNT([' + @colName +']) AS Expr1 FROM [' + @tabName+ '] group by [' + @colName + ']'
print @query
exec sp_executesql @query
Fetch Next from cursorTables into
@tabid,@tabName,@colName
End
Close cursorTables
Deallocate cursorTables
select * from #temp
drop table #temp
相关内容
- 没有找到相关文章
最新更新
- 日志记录不输出调试和信息日志
- 试图在R上安装地球引擎;Python =3.1不可用
- 如何在我的代码中添加一些项目,例如"Favorite"?
- 获取python中从1开始的值的特定索引
- BeautifulSoup美化编码非英语(西里尔字母)字符奇怪
- 为什么' rev().rev() '工作,但' rev().skip(1).rev() '不工作? &
- 我可以在共享媒体目录DCIM或Android的下载目录下编程创建空子目录吗?
- 错误:太多的重新渲染.React限制了渲染的次数,以防止无限循环.带有嵌套函数的自定义钩子
- (Python 3.8)如何将变量转换为没有分隔符的列表?
- 解决Docker层缓存在Azure Pipeline中不工作的问题
- Jetpack compose:可以设置下拉菜单的高度,以显示下一个项目
- 如何平嵌套的可观察对象,从RXJS
- 为什么我的解决方案不正确的旅游切片练习?
- 我如何使用sbt命令,如清洁和编译在我的自定义sbtplugin
- Angular语言 - 根据给定的数据自动填充嵌套表单
- node-gyp configure将错误:在VisualStudioFinder中生成EPERM
- Spring WebClient检索封装在results属性下的json对象
- 尝试设置BlazorMonaco编辑器时"ReferenceError: monaco is not defined"
- Pandas以正确的顺序创建一个列的DataFrame
- 在clojure中,vector前面的quote是什么意思?
- 在模板前使用隐式转换
- r语言 - 为什么我的生存曲线没有显示为分层分类?
- 触发通过外部记录创建API提交脚本之前/之后
- 为什么esp8266客户端没有连接到服务器?
- react-native-map-clustering的性能问题
- 如何在Flutter中设置图像选择器中的图像的最大大小
- dotenv:命令在nestjs项目中找不到
- 测试苗条的动态部件
- urllib.error.HTTPError:HTTP错误403:禁止使用urllib.requests
- 无法写入日志目录- symfony 5
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium