我有一个ROW_NUMBER()的问题,如果我在下面的查询中使用它与DISTINCT我有2个场景:1-直接运行此查询:给我示例400记录作为结果2-取消注释以[ - 开头的行-Uncomment1--]:给我700条记录,因为它复制了一些记录而不是所有记录
我想要的是解决这个问题或找到任何方法在每一行旁边显示一个行计数器,以使[在1到30之间的rownumber] - Uncomment2--
如果我把整个查询放在一个表中,然后过滤它,它是工作但它仍然很慢
等待任何反馈,我会很感激
SELECT * FROM
(SELECT Distinct CRSTask.ID AS TaskID,
CRSTask.WFLTaskID,
--Uncomment1-- ROW_NUMBER() OVER (ORDER By CRSTask.CreateDate asc ) AS RowNum ,
CRSTask.WFLStatus AS Task_WFLStatus,
CRSTask.Name AS StepName,
CRSTask.ModifiedDate AS Task_ModifyDate,
CRSTask.SendingDate AS Task_SendingDate,
CRSTask.ReceiveDate AS Task_ReceiveDate,
CRSTask.CreateDate AS Task_CreateDate,
CRS_Task_Recipient_Vw.Task_CurrentSenderName,
CRS_Task_Recipient_Vw.Task_SenderName,
CRS_INFO.ID AS CRS_ID,
CRS_INFO.ReferenceNumber,
CRS_INFO.CRSBeneficiaries,
CRS_INFO.BarCodeNumber,
ISNULL(dbo.CRS_FNC_GetTaskReceiver(CRSTask.ID), '') + ' ' + ISNULL
(CRS_Organization.ArName, '')
AS OrgName,
CRS_Info.IncidentID,
COALESCE(CRS_Subject.ArSubject, '??? ????') AS ArSubject,
COALESCE(CRS_INFO.Subject, 'Blank Subject') AS CRS_Subject,
CRS_INFO.Mode,
CRS_Task_Recipient_Vw.ReceiverID,
CRS_Task_Recipient_Vw.ReceiverType, …Run Code Online (Sandbox Code Playgroud) 我有2个表:::
T1(IDa,IDb)有这样的数据
IDa IDb
1 2
3 4
5 6
7 8
和T2(IDc,IDd):像这样的数据
IDc IDd
1 2
4 5
3 6
7 8
并且每个表的标识是一对ID:
问题是:如何从两个表中检索"不匹配"记录??? 在这种情况下,
我可以使用字符串和连接来做到这一点.有没有人有使用内连接或任何其他方法的方法?
我有一个如下所示的switch语句:
switch(task)
{
case 1:
print();
break;
case 2:
save();
break;
case 3:
sendmail();
break;
}
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来执行所有情况,这意味着如果任务是(全部)我想打印,保存和发送邮件.是否可以在给定的情况下使用一些修改我知道,我可以如下:
case All:
print();
save();
sendmail();
break;
Run Code Online (Sandbox Code Playgroud)
但正如我所说,我想知道,如果在switch语句中有一种方法可以执行所有情况.提前致谢