sql-server - 关键字 'case' 附近的语法不正确

标签 sql-server tsql

这段代码有什么问题

CREATE FUNCTION [dbo].[ChangeRevision] (@oldRev tinyint)
RETURNS varchar(1) 
AS
begin

declare @newRev varchar(1)
DECLARE @newval int
set @newval=CAST (@oldRev as int)

case @newval
begin
when 0 then set @newRev='Z'
when 1 then set @newRev='A'
when 2 then set @newRev='B'
when 3 then set @newRev='C'

end
return @newRev;

END

我有以下错误 关键字“case”附近的语法不正确。

关键字“Return”附近的语法不正确。

最佳答案

这应该有效:

SET @newRev = (SELECT case @newval
    WHEN 0 THEN 'Z'
    WHEN 1 THEN 'A'
    WHEN 2 THEN 'B'
    WHEN 3 THEN 'C'
    END)

关于sql-server - 关键字 'case' 附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19495162/

相关文章:

sql - SQL Server 中 NVARCHAR 列的排序依据

sql-server - 删除值后如何重置 SQL Server 所有表的标识列?

sql-server - 删除文档中的重复记录(Elasticsearch)

c# - 在 .NET 中的事务期间插入之前获取新 ID

sql - 微软 SQL 2012 : In SQL Shift columns to left side if column contains 0

sql-server - 从 xp_cmdshell 调用时 psexec 无法正常工作

sql-server - Excel 使用 VBA 使用 Windows 身份验证连接到 SQL

sql - 使用 BULK INSERT 时忽略某些列

TSQL - 如何迭代字符串列表

sql-server - 使用 SQL 生成 XML 的最佳方式