When then 聚合函数 TSQL 中的单值表达式

问题描述

我正在尝试根据某列在另一个表上的计数来映射该列的某个值。如果 [Location] 的计数,即每行中的一列 IMPORT.DATA_SCRAP 表。现在对于位置静态值,即犹他州和加德满都仅提供用于测试目的等于 1,然后我只需要在 select 语句中获取结果,即只必须返回单值表达式,但这里有 n 行表的值是回来。 为了。例如。在下面的查询中,返回 IMPORT.DATA_SCRAP 的总行数,在我的情况下,我只需要单个第一行值。 我开始知道光标或 CTE 是否会达到我的结果,但我无法弄清楚。 在这里

select
case 
when
((SELECT COUNT(stateName) FROM  Location.tblState where stateName = 'Utah')=1)
then (select stateName,CountryName from Location.tblState where stateName= 'Utah')
end as nameof
from IMPORT.DATA_SCRAP

国家、州、城市之间的关系如下:

select
case 
when
((SELECT COUNT(cityName) FROM  Location.tblCity where cityName = 'Kathmandu')=1)
then (select ct.countryName from Location.tblCity c
inner join Location.tblState s
on c.stateID = s.StateID
inner join Location.tblCountry ct 
on ct.countryId = s.CountryId
where c.cityName = 'Kathmandu'
)
end as nameof
from IMPORT.DATA_SCRAP

尽管结果中有多个 nmax 行 IMPORT.DATA_SCRAP 行,我如何只返回单个值表达式。 如果我在上面的查询中注释掉 -- from IMPORT.DATA_SCRAP 我将获得所需的单个结果表达式,但我无法以其他方式实现它或建议我以适当的方式来处理这些类型的情况。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)