如何查找多行字段中使用的不同字符的数量。
例如,如果有两行具有类似 的数据abcd,eaafg*则使用的不同字符是abcdefg*。
我有一个查询,我在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数据库以查找一列的所有不同值,我需要另外两列中的任意值.例如,下面的表格考虑有三列:CurrencyCode,BuyRate和SellRate:
CurrencyCode BuyRate SellRate
AUD 1.037 1.97
AUD 1.079 1.99
EUR 0.7288 0.8763
EUR 0.731 0.88
GBP 0.59 0.72
Run Code Online (Sandbox Code Playgroud)
我希望检索一行具有不同的行CurrencyCode,也许获取这三行:
CurrencyCode BuyRate SellRate
AUD 1.037 1.97
EUR 0.7288 0.8763
GBP 0.59 0.72
Run Code Online (Sandbox Code Playgroud)
我试过我的SQL查询:
SELECT distinct CurrencyCode, BuyRate, SellRate FROM Currencies
Run Code Online (Sandbox Code Playgroud)
但是我没有得到理想的结果,因为它区分了所有列.
样品:
a)1,2,3,4,5
b)2,3,4
a包含b.
不像.Intersect(),我需要保持序列顺序,即:
c)4,3,2
a不包含c.
我需要连接具有相同 Id 的两行的两个值并为其他列求平均值。这是我的示例表:

现在我的要求是我需要连接Response列,连接Response Rating列并平均Rating Avg列(如果它具有相同的ParticipantId, UseriD, QuestionId and ConductedById.
这是我想要的目标数据:

这里Response列和Response rating列与各自的行连接,Rating Avg列取平均值。我以前使用stuff函数完成了一列连接。这可以使用东西功能来实现吗?
我有这张桌子:
SELECT * FROM #BH2
BookingID | Detail | CreatedAgentCode | ChangeDate
----------|------------------------------------------------------|------------------|--------------------------
196162093 | MRS LUCIENE CORREA correa MRS LUCIENE CORREA | lclisboa | 2015-01-18 13:29:35.130
196162093 | MRS LUCIENE CORREA LISBOA MRS LUCIENE CORREA correa | VOMATOS | 2015-01-18 13:25:26.420
Run Code Online (Sandbox Code Playgroud)
还有这个:
SELECT * FROM BookingPassengerVersion WHERE BookingID = 196162093 ORDER BY ModifiedDate DESC
BookingID | Title | FirstName | MiddleName | LastName | AgentCode | ModifiedDate
----------|-------------------------------------------------------|----------------------------
196162093 | MRS | LUCIENE | | CORREA | lclisboa | …Run Code Online (Sandbox Code Playgroud) 虽然嘲笑我的ApplictionDbContext方法有错误AddOrUpdate.
DbSet 在上下文中是虚拟的.
测试方法:
this.db.ExpensesDocuments.AddOrUpdate(doc);
Run Code Online (Sandbox Code Playgroud)
我的测试方法:
[Fact]
public void AddOrUpdateExpenses_Success()
{
// arrange
var mockSet = new Mock<DbSet<ExpensesDocument>>();
var mockContext = new Mock<ApplicationDbContext>();
mockContext.Setup(m => m.ExpensesDocuments).Returns(mockSet.Object);
var provider = new ExpensesProvider(mockContext.Object);
// act
bool result = provider.AddOrUpdateExpenses(new ExpensesDocument());
// assert
}
Run Code Online (Sandbox Code Playgroud)
错误:
结果消息:System.InvalidOperationException:无法在派生的IDbSet类型'Castle.Proxies.DbSet`1Proxy'上调用public,实例方法AddOrUpdate.找不到方法.
我正在使用Moq4框架进行模拟和xUnit测试.
我有一个有序列表,如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].我将它传递给一份Parallel.ForEach声明.我可以以某种方式实现以下桶的执行顺序,例如:处理前3个项目[1, 2, 3],其中桶本身的排序不是强制性的,[2, 1, 3]例如可以.然后处理接下来的3个项目[4, 5, 6]等?
我需要一些sql查询帮助,但我无法使其工作.我需要按编号依次订购这些值.
有什么建议怎么办?
我正在努力Sql Server 2014,但我认为这是无关紧要的.
Cod_Turma Turma
1 11-A
2 11-F
3 10-F
4 11-G
5 11-I
6 10-E
7 12-L
8 10-J
9 7-B
10 9-B
11 7-E
12 7-D
13 12-H
Run Code Online (Sandbox Code Playgroud)
输出应该是:
Cod_Turma Turma
9 7-B
12 7-D
11 7-E
10 9-B
...
Run Code Online (Sandbox Code Playgroud) 我有数据:
2014-10-28 Excess 1025 98297654999.82
2014-10-29 Excess 251 1902171582.07
2014-10-28 Pastdue 1590 7645464003.17
2014-10-29 Pastdue 13 3704776.10
Run Code Online (Sandbox Code Playgroud)
我需要这样的数据:
Date ExcessCount ExcessAmt PassCount PassAmt
28/10/2015 1025 98297655000 1590 7645464003
29/10/2015 251 1902171582 13 3704776.1
Run Code Online (Sandbox Code Playgroud)
请让我知道如何做到这一点.