请帮助我应对这个挑战。
此代码返回空白结果,我无法找出原因。
select Vendor_Name + ' || ' + cast(cnt as varchar(12)) as Vendor_Count
from (select top (1) Vendor_Name, count(Vendor_Name) as cnt
from dbo.Vendors nolock
group by Vendor_Name
having count(Vendor_Name)>1
order by 2 desc) x
但是...内部查询返回Vendor_Name 空白,并且 cnt 63420
select top (1)
Vendor_Name, count(Vendor_Name) as cnt
from
dbo.Vendors nolock
group by
Vendor_Name
having
count(Vendor_Name) > 1
order by
2 desc
这是没有顶部 (1) 的内部查询的结果。如您所见,空白/空/空 Vendor_Name 出现频率最高。
我使用 len() 函数检查 Vendor_name 的长度,它返回 12。但是当我将上面内部查询的结果复制到 Excel 工作表中,并在 Excel 中使用 len() 函数时 - excel 显示 0。声明的长度Vendor_name
SQL Server 表中的for是nvarchar(50)
.
我试过了isnull(Vendor_Name,'')
,COALESCE(Vendor_Name,'')
但这并没有什么不同。
我重新安排了查询并得到了非空白结果,有趣的是这有效,但我的原始查询无效。
select ' || ' + cast(cnt as varchar(12)) + ' ' + Vendor_Name
from (select top (1) Vendor_Name, count(Vendor_Name) as cnt
from dbo.Vendors nolock
group by Vendor_Name
having count(Vendor_Name)>1
order by 2 desc) x
但这个结果不是我想要的。
我错过了什么?
谢谢!
附言。我试图将数据复制到此处发布,但没有成功。