ÀàËÆSQL µÄGroup by¹¦ÄÜ
×î½ü×öÁ˼¸¸öССͳ¼ÆµÄ±¨±í½çÃæ£¬ÓÉÓÚ.net²»´øgroup by µÄ¹¦ÄÜ£¬Í³¼ÆÆðÀ´ÓÐʱºòÏ൱²»±ã£¬±ã³Ã×Å˯×ŵÄʱºòдÁËÒ»¸öÀàËÆµÄ·½·¨¡£
Óв»×ãÖ®´¦»òÊÇÓиüºÃµÄ·½·¨»¹Íû´ó¼ÒÖ¸Õý¡£
ÖÁÓÚЧÂÊÈçºÎ£¿Î´Öª£¬ÒòΪ±¾È˵IJâÊÔÊý¾Ý¾ÍÊDZȽÏÉÙ¡£
/// <summary>
/// SQL Group by
/// </summary>
/// <param name="dtSource">Êý¾ÝÔ´</param>
/// <param name="arrType">ͳ¼ÆÀàÐÍ£ºcount¡¢sum¡¢avg¡¢max¡¢min</param>
/// <param name="arrField">ÓëÇ°ÃæÀàÐÍÒ»Ò»¶ÔÓ¦µÄ×Ö¶Î</param>
/// <param name="strGroupby">Groupby×Ö¶Î,¿ÉÒÔ¶à¸ö£¬²¢ÓöººÅ¸ô¿ª</param>
/// <returns></returns>
public static DataTable DataTableGroupBy(DataTable dtSource, string[] arrType, string[] arrField, string strGroupby)
{
if (strGroupby == null || strGroupby == string.Empty)
{
strGroupby = "PublicColumn";
dtSource.Columns.Add(strGroupby);//ÎÞÌõ¼þÈ«¾Öͳ¼Æ
}
//´´½¨Ò»¸öÓëÊý¾ÝÔ´Ïàͬ½á¹¹µÄ±íÓÃÓÚ½ÓÊÕͳ¼ÆºóµÄÊý¾Ý
DataTable dt = dtSource.Clone();
//group by(»òdistinct) ²Ù×÷¹ýÂ˵ôÏàͬÏî
DataView dv = dtSource.Copy().DefaultView.ToTable(true, strGroupby).DefaultView;
string[] arrRow = strGroupby.Split(',');
foreach (DataRowView drv in dv)
{
strGroupby = string.Empty;
DataRow dr = dt.NewRow();
for (int i = 0; i < arrRow.Length; i++)
{
//¹ýÂËÌõ¼þ
strGroupby += arrRow[i] + (drv[arrRow[i]].ToString() == string.Empty ? " is null " : "='" + drv[arrRow[i]] + "'") + " and ";
dr[arrRow[i]] = drv[arrRow[i]];
}
strGroupby += "1=1";
//¶Ôÿ¸ö×ֶνøÐв»Í¬·½Ê½µÄͳ¼Æ
for (int i = 0; i < arrType.Length; i++)
{
dr[arrField[i]] = dtSource.Compute(arrType[i]
Ïà¹ØÎĵµ£º
4.6 ͨ¹ýÈÕÖ¾²é¿´·þÎñÆ÷µÄÔËÐÐÇé¿ö
SQL Server 2005¿ÉÒÔ½«Ä³Ð©ÏµÍ³Ê¼þºÍÓû§×Ô¶¨ÒåµÄʼþ¼Ç¼µ½SQL Server´íÎóÈÕÖ¾ºÍWindowsÓ¦ÓóÌÐòÈÕÖ¾ÖС£ÕâÁ½ÖÖÈÕÖ¾¶¼»á×Ô¶¯±êÉÏʱ¼ä¡£
4.6.1 ÔÚ¡¾Ê¼þ²é¿´Æ÷¡¿Öв鿴·þÎñÆ÷µÄÔËÐÐÇé¿ö
SQL Server 2005·þÎñÆ÷µÄÆô¶¯¡¢¹Ø±ÕºÍÔÝÍ£¶¯×÷£¬¶¼»á²úÉúÒ»¸öʼþ¼Ç¼£¬Õâ¸ö¼Ç¼½«»á¼ÇÔÚWindows ......
»ñÈ¡¡¢Ôö¼Ó¡¢Ð޸ġ¢É¾³ýsqlserver×Ö¶ÎÃèÊö
Select o.name AS tableName, c.name AS columnName, p.[value] AS Description
from sysproperties p INNER JOIN
sysobjects o ON o.id = p.id INNER JOIN
syscolumn ......
Ò».Îı¾µ¼ÈëÊý¾Ý¿â
--²½Öè1.´´½¨¿ØÖÆÎļþ
load data¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ --1¡¢¿ØÖÆÎļþ±êʶ
infile 'E:\oradata\orcl\test\inf_user.txt'¡¡¡¡¡¡¡¡¡¡¡¡¡¡ --2¡¢ÒªÊäÈëµÄÊý¾ÝÎļþÃûΪinf_user.txt (Îļþȱʡ·Åµ½C:\ Ï£¬Èç¹û²»ÊÇ£¬¾ÍÐèÒªÖ¸Ã÷ȫ·¾¶)
append into table inf_user¡¡¡¡¡¡¡¡--3¡¢Ïò±ítestÖÐ× ......