小编Gio*_*uri的帖子

(NaN!= NaN)和(NaN!== NaN)之间有什么区别?

首先,我要提一提,我知道如何isNaN()Number.isNaN()工作.我正在阅读David Flanagan的The Definite Guide,他给出了一个如何检查值是否为例子的例子NaN:

x !== x
Run Code Online (Sandbox Code Playgroud)

这将导致true当且仅当xNaN.

但现在我有一个问题:他为什么要使用严格的比较?因为它似乎

x != x
Run Code Online (Sandbox Code Playgroud)

表现方式相同.是否可以安全使用的两个版本,或我很想念在JavaScript中的一些值(S),将返回truex !== xfalsex != x

javascript nan

147
推荐指数
3
解决办法
1万
查看次数

按两列的最小值排序

我用SQL Server 2008 R2.

我需要按两列的最小值对表进行排序.

该表如下所示:

ID: integer; 
Date1: datetime; 
Date2: datetime.
Run Code Online (Sandbox Code Playgroud)

我希望我的数据按最少两个日期排序.

以这种方式对此表进行排序的最简单方法是什么?

sql t-sql sql-server sorting min

51
推荐指数
5
解决办法
4607
查看次数

C#Linq - 获取非空集合的对象

我有:

private Dictionary<int, ?olor[]> colorSet = new Dictionary<int, ?olor[]>()
{
   {1, new ?olor[2] {?olor.Red, ?olor.Green}},
   {2, new ?olor[2] {?olor.Yellow, ?olor.Blue}},
   ...
};

public class Graph
{
   public ?olor ?olor { get; set; }
   public ICollection<Point> Points { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

1)我如何List<Graph>从数据库中获取Points非空的?

List<Graph> graphs = context.Graphs.Where(g => g.Points.Count > 0).ToList()
Run Code Online (Sandbox Code Playgroud)

2)如何执行?

List<Graph> graphs = context.Graphs.Where(g => colorSet[1].Contains(g.Color)).ToList()
Run Code Online (Sandbox Code Playgroud)

例外是:

LINQ to Entities 无法识别方法'...'方法,并且此方法无法转换为商店表达式.

c# linq

9
推荐指数
1
解决办法
253
查看次数

在WCF服务中重构God对象

我们god object在我们的系统中遇到了一个.该系统包括public service暴露给我们的客户,middle office serviceback office service.

流程如下:用户注册一些交易public service,然后经理middle office service检查交易并批准或拒绝交易,最后管理者back office service完成或拒绝交易.

使用我'这个词transaction,但实际上这些都是不同的类型,如操作的CRUD on entity1,CRUD on entiny2......不仅CRUD操作,但其他许多操作,例如approve/send/decline entity1,make entity1 parent/child of entity2等等...

现在WCF服务合同只是根据系统的那些部分分开.所以我们有3个服务合同:

PublicService.cs
MiddleOfficeService.cs
BackOfficeService.cs
Run Code Online (Sandbox Code Playgroud)

每个都有大量的运营合同:

public interface IBackOfficeService
{
    [OperationContract]
    void AddEntity1(Entity1 item);

    [OperationContract]
    void DeleteEntity1(Entity1 item);

    ....

    [OperationContract]
    void SendEntity2(Entity2 item);

    ....
}
Run Code Online (Sandbox Code Playgroud)

所有3项服务的运营合同数量已经达到2000个,每个服务合同约为600个.它不仅打破了最佳实践,而且只需更新服务引用就会非常痛苦,因为它需要很长时间.并且系统每天都在增长,并且在每次迭代中将越来越多的操作添加到这些服务中.

现在我们面临两难困境,因为我们如何将这些神服务分解为逻辑部分.有人说服务不应包含超过12~20次操作.其他人说一些不同的事情.我意识到没有黄金法则,但我希望听到一些关于此的建议.

例如,如果我只是按实体类型拆分这些服务,那么我可以在项目中获得大约50个服务端点和50个服务引用.在这种情况下,可维护性是什么?

还有一件事需要考虑.假设我选择了按实体拆分这些服务的方法.例如:

public …
Run Code Online (Sandbox Code Playgroud)

wcf soa servicecontract

9
推荐指数
1
解决办法
321
查看次数

使用其他表中的多个值的随机更新表

考虑这些数据:

CREATE TABLE #Data (DataID INT, Code VARCHAR(2), Prefix VARCHAR(3))

INSERT INTO #Data (DataID, Code)
VALUES (1, 'AA')
, (2, 'AA')
, (3, 'AA')
, (4, 'AA')
, (5, 'AA')
, (6, 'AA')

CREATE TABLE #Prefix (Code VARCHAR(2), Prefix VARCHAR(3))

INSERT INTO #Prefix (Code, Prefix)
VALUES ('AA', 'ABC')
, ('AA', 'DEF')
, ('AA', 'GHI')
, ('AA', 'JKL')
Run Code Online (Sandbox Code Playgroud)

我想设置的Prefix中值#Data是随机Prefix#Prefix与匹配Code.

使用直接inner join只会导致使用一个值:

UPDATE D
SET Prefix = P.Prefix
FROM #Data …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server random sql-server-2012

7
推荐指数
1
解决办法
480
查看次数

SUM列SQL SERVER

我有一张表SQL Server,我需要总结一列,如下例所示:

CREATE TABLE B
(
ID int,
Qty int,
)

INSERT INTO B VALUES (1,2)
INSERT INTO B VALUES (2,7)
INSERT INTO B VALUES (3,2)
INSERT INTO B VALUES (4,11)

SELECT *, '' AS TotalQty FROM B
ORDER BY ID
Run Code Online (Sandbox Code Playgroud)

在这个例子中我需要的是列TotalQty给我的值如下:

 2
 9
 11
 22
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

sum sql-server-2008

6
推荐指数
1
解决办法
233
查看次数

sql为每一行添加额外的行

是否可以根据字段值向选定集添加其他行?

我有这个问题:

WITH CTEDivisions AS
(
    SELECT ....
)

SELECT 
    cnt,
    Division
FROM CTEDivisions
Run Code Online (Sandbox Code Playgroud)

哪个回报:

  cnt         Division
  1           Sales
  2           Marketing
  1           Business
  2           IT
  etc...
Run Code Online (Sandbox Code Playgroud)

我需要的是一个声明,返回3个额外的行cnt = 2,如:

 Division     NewDivision
 Sales        Sales
 Marketing    Marketing - X
 Marketing    Marketing - Y
 Marketing    Marketing - Z
 Business     Business
 IT           IT - X
 IT           IT - Y
 IT           IT - Z
 etc...
Run Code Online (Sandbox Code Playgroud)

我已经搜索了这样做的方法,并找到了一些使用cursorWHILE循环的可能解决方案,但这些似乎与CTE语句一起使用.

sql t-sql sql-server sql-server-2012

6
推荐指数
2
解决办法
254
查看次数

实体框架 - 按总和分组

这对我来说是一个相对较新的领域。我有两个实体:InquiriesCategories

每个Inquiry都有一个类别和一个指示整数值的属性(称为TotalTimeSpent),每个类别有多个查询。

我想要做的是生成一个按类别分组的视图,同时汇总该类别中的所有查询。

我现在的代码是:

var catgroup = db.CATEGORies.GroupBy(i => i.CATNAME).Sum(c => c.)
Run Code Online (Sandbox Code Playgroud)

显然每个分组都有多个查询,所以当我执行 c=> c. 它不会带回我需要仅用组扩展求和的属性(如FirstOrDefault)。

我如何从这里继续,以便我可以TotalTimeSpent根据上述分组对每个查询进行求和?

entity-framework entity-framework-6

6
推荐指数
1
解决办法
2万
查看次数

保证随机插入

我试图预生成一些字母数字字符串并将结果插入表中.字符串的长度为5.示例:a5r67.基本上我想为客户生成一些可读字符串,以便他们可以访问他们的订单 www.example.com/order/a5r67.现在我有一个select语句:

;WITH 
    cte1 AS(SELECT * FROM (VALUES('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'),('j'),('k'),('l'),('m'),('n'),('o'),('p'),('q'),('r'),('s'),('t'),('u'),('v'),('w'),('x'),('y'),('z')) AS v(t)),
    cte2 AS(SELECT * FROM (VALUES('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'),('j'),('k'),('l'),('m'),('n'),('o'),('p'),('q'),('r'),('s'),('t'),('u'),('v'),('w'),('x'),('y'),('z')) AS v(t)),
    cte3 AS(SELECT * FROM (VALUES('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'),('j'),('k'),('l'),('m'),('n'),('o'),('p'),('q'),('r'),('s'),('t'),('u'),('v'),('w'),('x'),('y'),('z')) AS v(t)),
    cte4 AS(SELECT * FROM (VALUES('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'),('j'),('k'),('l'),('m'),('n'),('o'),('p'),('q'),('r'),('s'),('t'),('u'),('v'),('w'),('x'),('y'),('z')) AS v(t)),
    cte5 AS(SELECT * FROM (VALUES('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'),('j'),('k'),('l'),('m'),('n'),('o'),('p'),('q'),('r'),('s'),('t'),('u'),('v'),('w'),('x'),('y'),('z')) AS v(t))
INSERT INTO ProductHandles(ID, Used)
SELECT cte1.t + cte2.t + cte3.t + cte4.t + cte5.t, 0
FROM cte1
CROSS JOIN cte2
CROSS JOIN cte3
CROSS JOIN cte4
CROSS JOIN cte5
Run Code Online (Sandbox Code Playgroud)

现在的问题是我需要写这样的东西来从表中获取一个值:

SELECT TOP 1 ID 
FROM ProductHandles
WHERE Used = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

6
推荐指数
1
解决办法
126
查看次数

sql排名只有连续的行

我有一个查询,我在3列的基础上排名行.我成功地这样做了,除了如果任何行在这3列中包含相同的数据,即使它在输出中不连续,它也会给它下一个等级.我希望如果任何行匹配这些列中的数据,只有当它在连续的行中时才应该给出下一个等级,如果不是那么它应该再次给它排名为1.我尝试了以下代码:

  SELECT DISTINCT DENSE_RANK () OVER (PARTITION BY Patient_ID, 
                                                 Opnametype, 
                                                 afdelingscode ORDER BY  Patient_ID, Opnamenummer, SPECIALISMEN, Opnametype, OntslagDatumTijd) AS rnk, 
                *
  FROM t_opnames
  ORDER BY Patient_ID, Opnamenummer, SPECIALISMEN, Opnametype, OntslagDatumTijd
Run Code Online (Sandbox Code Playgroud)

它输出为:

rnk Opnamenummer Patient_ID afdelingscode     Opnametype   Specialismen  OntslagDatumTijd ...
1   2983800      100006     RD8-GH MAU        Inpatient-E  GM            2014-09-01 14:50:00.000
2   2983800      100006     RD8-GH MAU        Inpatient-E  GM            2014-09-02 19:32:00.000
1   2983800      100006     RD8-GH Ward 08    Inpatient-E  GM            2014-09-03 17:12:00.000  
1   2983800      100006     RD8-GH Endo       Inpatient-E  GM            2014-09-09 09:06:00.000
2   2983800      100006     RD8-GH …
Run Code Online (Sandbox Code Playgroud)

sql-server rows continuous rank sql-server-2008

5
推荐指数
1
解决办法
834
查看次数