我有一个通过SQL查询获得的列列表。
Select Substring(col1, 1, 1) letter, Count(Substring(col1, 1, 1)) cnt
From tbl
Group By Substring(col1, 1, 1)
现在,对于每一列,我想查询有关该列的一些信息,并将它们放在一个表中。
以下是我为单个列运行的查询,例如。
Table_Name, Column_Name, letter, cnt
tbl, col1, a, 6
tbl, col1, b, 15
tbl, col2, a, 5
...
此子查询的作用是它获得列中记录的第一个字符的计数。因此,例如,col1中可能有6条记录以字母'a'开头,col1中有15条以字母'b'开头的记录,等等。
如何将这两个查询组合到一个表中,以便得到类似......
的内容public class MyClass
{
private static readonly MyLogger.ILog Log = MyLogger.LogManager.GetLogger(typeof(MyClass));
private void DoSomethingLogged()
{
var Log = MyLogger.LogManager.GetLogger(MyClass.Log.Name+"::"+nameof(DoSomethingLogged));
var localLog = Log;
var staticLog = MyClass.Log;
Log.Info("method called");
}
}
答案 0 :(得分:1)
你想要这个:
int a = 10;
答案 1 :(得分:1)
这有用吗?
DECLARE @query VARCHAR(Max)
SELECT @query=COALESCE(@query + ' union all ', '') + CAST('SELECT ''' +TABLE_SCHEMA+''' As [Schema],'''+TABLE_NAME+''' As TableName,'''+COLUMN_NAME+''' As ColumnName, Substring(['+COLUMN_NAME+'],1,1) letter,COUNT(Substring(['+COLUMN_NAME+'],1,1)) cnt
FROM '+TABLE_SCHEMA+'.'+TABLE_NAME+
' Group by Substring(['+COLUMN_NAME+'],1,1)' AS VARCHAR(MAX))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE IN('varchar','char','nvarchar')
--SELECT @query
Exec(@query)