我需要在一个查询中计算两列中某些数据的出现总和.DB位于SQL Server 2005中.
例如,我有这个表:
Person: Id, Name, Age
Run Code Online (Sandbox Code Playgroud)
我需要在一个查询中得出这些结果:
1.名字为'John'的人数
2.计算'John',年龄超过30岁.
我可以通过这种方式使用子查询来做到这一点(仅作为示例):
SELECT (SELECT COUNT(Id) FROM Persons WHERE Name = 'John'),
(SELECT COUNT (Id) FROM Persons WHERE Name = 'John' AND age > 30)
FROM Persons
Run Code Online (Sandbox Code Playgroud)
但这很慢,我正在寻找更快的方法.
我找到了MySQL的这个解决方案(它几乎解决了我的问题,但它不适用于SQL Server).
您是否知道在一个查询中计算少量计数比使用子查询更好的方法?
有没有理由在表中添加少量(少于10个)元素的索引?它经常在连接中使用,但我不确定这样小的表上的索引是否会增加其性能或降低.
编辑:表中的行非常小:7列,总大小小于500字节,所以我认为它可以存储在服务器内存中(这是Paul Sanwald的回答)
我正在寻找改变人声音色的图书馆.我想做一些小改动:将深男声改变得更高一些(比如改变低音到男高音).
我认为在更广泛的范围内改变声音 - 将男性声音改变为女性声音太复杂,没有好的工具可以做到这一点,我是对的吗?
在我的webapplication中,我有一些存储在Page.Cache中的预先计算的值.在他的时刻,我必须将此功能移动到webservice.
所以我需要在webservice中引入类似的功能 - 在第一次调用web方法时计算值并将其存储在Cache中.
是否可以在Web服务中将一些值放入Cache(不在应用程序或会话中 - 我需要在一段时间间隔后清除这些值)?
我正在研究使用公共库的一组webpart.
要测试部署,我需要在生成的html中添加版本信息.向页面添加版本"水印"的方法在公共库中.
所以我有这样的东西(它更复杂,因为在公共库中是webparts的基类,但对于这个问题,我们可以简化它):
在mainAssembly.dll的控制下,我正在调用OnInit方法:
protected override void OnInit(EventArgs e)
{
..
Library.AddWatermark(this);
..
}
Run Code Online (Sandbox Code Playgroud)
在共同的图书馆我有:
public void AddWatermark(Control ctrl)
{
string assemblyVersion = GetAssemblyVersion();
ctrl.Controls.Add(new HiddenField { Value = string.Format("Version: {0}", assemblyVersion ) });
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:当我们在这个组件的方法中时如何获得组装版本?(在AddWatermark中)?如果有可能获得调用者程序集的版本?(mainAssembly)
我需要将表保存到CSV文件.表的每个单元格都可以包含字符串,如:",;"和新行.
如何将这些字符串转换为可以在Excel中打开的有效CSV字段?
我想在我的应用程序功能中添加以各种格式解压缩(并可选地压缩)文件.我有支持zip,gzip,7zip和bzip2的库.但仍然没有找到支持rar的库.
我知道rar是商业的,但也许有一些.net库可以用来解压缩rar-s?最好的是免费图书馆,但价格低廉的图书馆也是可以接受的.
我在Sharepoint 2010中创建了几个webpart.在当前版本中,用户通过Ad登录进行身份验证,但现在客户希望自定义它并允许通过AD登录或电子邮件名称进行身份验证 - 使用声明(在不同的应用程序池上).
我的问题是我必须检查用户是否通过声明进行身份验证(在我的管理员webpart中使用它).
我知道我可以在sharepoint中检查用户登录名,如果是这种形式:i:0#.f | ldapmember | user@example.com这意味着我已经启用了声明.
但也许有更好的方法来检查索赔是否已开启?有谁知道这种方法?
我需要分析数千个jpeg文件(通过检索它的EXIF数据).它超过50 GB的数据.我无法读取整个文件,因为它需要花费太多时间.
C#中是否有任何方法只读取这些文件中的EXIF数据而无需加载和解压缩整个jpeg文件?
编辑:为什么我需要快速方法?
我已经尝试过这个问题的解决方案:如何使用C#从文件中获取EXIF数据
而对于1000个总大小约为1GB的图像,需要3分钟进行分析.因此,对于较大的(50G)照片库,可能需要2个小时.当您需要几乎即时的信息时,例如:"客户使用的缩放比例是什么",这太慢了.
我想从Active Directory更改用户的.NET应用程序登录.
我现在正以这种方式改变它:
DirectoryEntry userToUpdate = updatedUser.GetDirectoryEntry();
userToUpdate.Properties["sAMAccountName"].Value = user.NewLogin;
userToUpdate.CommitChanges();
Run Code Online (Sandbox Code Playgroud)
但它没有像我期望的那样起作用.当我在为此用户检入AD"Active Directory用户和计算机"条目时,然后在"帐户"选项卡上,我看到:
- "用户登录名"属性未更新
- "用户登录名(Windows 2000之前版) "财产得到了适当的更新.
如何从C#代码中正确更新AD中的登录名?我应该在DirectoryEntry中设置什么属性,或者有另一种方法来更改登录名.