Mysql 更改SQL查询中的返回值

Mysql 更改SQL查询中的返回值,mysql,sql,sql-server,Mysql,Sql,Sql Server,我正在使用实时查看程序进行SQL查询(并让我编辑一段代码) 目前的代码是: SELECT [LogonName] AS [Logon name], [LogonExtension] AS [Logon extension], [VoiceReady] AS [Ready for Voice], [CallState] AS [Call state] FROM [AgentPerformance] WHERE (AgentID IN (1

我正在使用实时查看程序进行SQL查询(并让我编辑一段代码)

目前的代码是:

SELECT 
    [LogonName] AS [Logon name], 
    [LogonExtension] AS [Logon extension], 
    [VoiceReady] AS [Ready for Voice], 
    [CallState] AS [Call state]
FROM 
    [AgentPerformance]
WHERE 
    (AgentID IN (1, 2, 3))
这将返回:

现在我的问题是,有没有办法将返回的“呼叫状态”值更改为忙碌、空闲、处理等。。。(有3个不同的值)

例如,我尝试过:

SELECT 
    [LogonName] AS [Logon name], 
    [LogonExtension] AS [Logon extension], 
    [VoiceReady] AS [Ready for Voice], 
    [CallState] AS [Call state]
FROM
    [AgentPerformance]
WHERE 
    (AgentID IN (1, 2, 3))

SELECT 
    CASE 
       WHEN CallState = 0 THEN 'No'
       WHEN CallState = 1 THEN 'Yes
       ELSE 'Maybe'
    END AS kakaduu
FROM 
    AgentPerformance

但这对我不起作用。

您的
案例
表达式需要与其他列一起出现在
选择
列表中。第二个
SELECT
在您的示例中是不正确的语法

那么,试试这个:

SELECT [LogonName] AS [Logon name], [LogonExtension] AS [Logon extension], [VoiceReady] AS [Ready for Voice], [CallState] AS [Call state],
CASE 
    WHEN CallState = 0 then 'No'
    WHEN CallState = 1 then 'Yes'
    ELSE 'Maybe'
END
AS kakaduu
FROM [AgentPerformance]
WHERE   AgentID IN (1, 2, 3) 

SQL Server或mysqlWhat means
对我不起作用
?你的case语句应该在where子句之前..那对你起作用总是有三个调用状态值,或者列表将来可能会更改吗?Jens:我真的不知道答案,对不起:/Toonice:在futureCase表达式中列表可能会有更改,不是声明,好多了。大小写表达式返回一个值。存储过程中使用的case语句只是有条件地执行代码。@JakeRahu您的问题与此图中出现错误的查询之间的关系是什么?似乎当我使用“case”时,查询(在此特定程序中)返回错误,我还可以尝试其他方法吗?