Sql server 返回正确结果的条件在sql server中不起作用

Sql server 返回正确结果的条件在sql server中不起作用,sql-server,Sql Server,有没有办法只显示下面的黄色结果?我曾尝试使用sql server,其中provider_name=previous_discharge_prov或previous_discharge_prov为null,但它为cust_id 120343796返回第1行和第3行,而不是第2行和第3行。谢谢 这里的逻辑非常不清楚,但是,根据您的评论猜测,我需要显示连续进入同一供应商的客户id,也许您的意思是: 以CTE为例 选择{您需要的列}, LAGProviderName按CustID顺序按RowNum作为上

有没有办法只显示下面的黄色结果?我曾尝试使用sql server,其中provider_name=previous_discharge_prov或previous_discharge_prov为null,但它为cust_id 120343796返回第1行和第3行,而不是第2行和第3行。谢谢


这里的逻辑非常不清楚,但是,根据您的评论猜测,我需要显示连续进入同一供应商的客户id,也许您的意思是:

以CTE为例 选择{您需要的列}, LAGProviderName按CustID顺序按RowNum作为上一个提供程序进行分区, 按CustID顺序按RowNum作为下一个提供者的分区上的LEADProviderName 从dbo.YourTable 选择{您需要的列} 来自CTE 其中ProviderName位于上一个Provider、下一个Provider中;
告诉我们什么样的表演和什么样的不表演背后的逻辑会帮助我们帮助你。至于你尝试了什么,你得到的是正确的。对于120343796,当ROW_NUM的值为2时,provider_name和previous_discharge_prov的值不同,且均不为NULL;所以他们不符合要求。同样,第一行将返回WHERE,但您也不希望返回WHERE。如果没有你表达你需要的逻辑,我们很难知道你想要什么,如果你不知道,我们还有什么希望?。我做了一个单独的cte,只有cust_id和sumrow_num,其中provider_name=previous_discharge_prov然后将其加入到上面的最后一个查询中,以删除只有row_num=1的cust_id。我需要显示什么逻辑才能找到我所要求的?您需要解释如何确定要显示或不显示哪些行。我想显示发送到同一提供商名称的客户id。抱歉,我解释得不好。我想就是这样。谢谢你的耐心和帮助。非常感谢。