我正在尝试根据其在另一个表上的计数来映射列的某个值。如果 [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,我会在我的情况下获得所需的单个结果表达式,但无法以其他方式实现它或建议我以适当的方式处理这些类型的情况。