Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不分组的情况下从SQL案例子查询返回多个值_Sql_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

如何在不分组的情况下从SQL案例子查询返回多个值

如何在不分组的情况下从SQL案例子查询返回多个值,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我有以下SQL查询,其中CASE语句需要返回多个值 select TASK_NAME from TASK where TASK_TYPE in ( case when (select USER_COUNTRY from USER) in (select COUNTRY_NAME from COUNTRY where CONTINENT = 'Europe') then ('Adhoc', 'Resell') when (selec

我有以下SQL查询,其中CASE语句需要返回多个值

select TASK_NAME 
from TASK 
where TASK_TYPE in (          
    case 
        when (select USER_COUNTRY from USER) in (select COUNTRY_NAME from COUNTRY where CONTINENT = 'Europe') then ('Adhoc', 'Resell')
        when (select USER_COUNTRY from USER) in (select COUNTRY_NAME from COUNTRY where CONTINENT = 'Americas') then ('Classified', 'Bought', 'Handle')
        else ('None', 'Blank')
    end )
然而,WHEN子句的数量不是固定的,因为可能有更多的条件。我认为这行不通

我还要补充的是,此查询传递给的应用程序无法识别分组


我为没有提供桌子而道歉。我会在适当时候这样做。您可以将比较移到
when
子句中,让
大小写返回一个指示匹配的标量值:

where 1 = (case when (select USER_COUNTRY from USER) in (select COUNTRY_NAME from COUNTRY where CONTINENT = 'Europe') and Task_Type IN ('Adhoc', 'Resell')
                then 1
                when (select USER_COUNTRY from USER) in (select COUNTRY_NAME from COUNTRY where CONTINENT = 'Americas') and Task_Type IN ('Classified', 'Bought', 'Handle')
                then 1
                when Task_Type IN ('None', 'Blank')
                then 1
            end )

这是一组相当奇怪的条件。您确定不能使用
JOIN

更好地表达逻辑吗?您所说的“需要返回多个值”是什么意思?设计函数的Case语句将以以下方式返回第一个为真的条件。听起来您需要的是连接,而不是案例。不幸的是,组和连接在应用程序中的使用受到限制。事实上我的原始帖子中的查询是一个子查询。@Confover。我真正关心的是,
用户
可能有多行。在这种情况下,SQL通常会生成一个错误。