首先,我要提一提,我知道如何isNaN()和Number.isNaN()工作.我正在阅读David Flanagan的The Definite Guide,他给出了一个如何检查值是否为例子的例子NaN:
x !== x
Run Code Online (Sandbox Code Playgroud)
这将导致true当且仅当x是NaN.
但现在我有一个问题:他为什么要使用严格的比较?因为它似乎
x != x
Run Code Online (Sandbox Code Playgroud)
表现方式相同.是否可以安全使用的两个版本,或我很想念在JavaScript中的一些值(S),将返回true的x !== x和false为x != x?
我用SQL Server 2008 R2.
我需要按两列的最小值对表进行排序.
该表如下所示:
ID: integer;
Date1: datetime;
Date2: datetime.
Run Code Online (Sandbox Code Playgroud)
我希望我的数据按最少两个日期排序.
以这种方式对此表进行排序的最简单方法是什么?
我有:
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无法识别方法'...'方法,并且此方法无法转换为商店表达式.
我们god object在我们的系统中遇到了一个.该系统包括public service暴露给我们的客户,middle office service和back 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) 考虑这些数据:
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 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)
有帮助吗?
是否可以根据字段值向选定集添加其他行?
我有这个问题:
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)
我已经搜索了这样做的方法,并找到了一些使用cursor和WHILE循环的可能解决方案,但这些似乎与CTE语句一起使用.
这对我来说是一个相对较新的领域。我有两个实体:Inquiries和Categories。
每个Inquiry都有一个类别和一个指示整数值的属性(称为TotalTimeSpent),每个类别有多个查询。
我想要做的是生成一个按类别分组的视图,同时汇总该类别中的所有查询。
我现在的代码是:
var catgroup = db.CATEGORies.GroupBy(i => i.CATNAME).Sum(c => c.)
Run Code Online (Sandbox Code Playgroud)
显然每个分组都有多个查询,所以当我执行 c=> c. 它不会带回我需要仅用组扩展求和的属性(如FirstOrDefault)。
我如何从这里继续,以便我可以TotalTimeSpent根据上述分组对每个查询进行求和?
我试图预生成一些字母数字字符串并将结果插入表中.字符串的长度为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) 我有一个查询,我在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)