简单,标准的case语句抛出错误

时间:2014-05-02 15:27:09

标签: sql sql-server

我有一个非常简单的案例陈述,理论上应该有效,除非我错过了一些完全明显的东西。作为一个小测试,我试图根据另一个单独变量的值打印变量的值(所以现在,没有数据库查询,我只是使用我在语句中放置的基本信息)。 / p>

我已经看了几个关于同一主题的其他SO问题,我跟着他们写了这封信,但是由于某些原因这仍然不起作用。

DECLARE @NEWORGID INT 
SET @NEWORGID = 1

DECLARE @BOOKINGID INT
SET @BOOKINGID = 1

DECLARE @ORGANISATIONID INT
SET @ORGANISATIONID = 2

SELECT
CASE 
    (@NEWORGID) 1 
THEN
    PRINT @bookingid
ELSE 
    PRINT @ORGANISATIONID
END

我得到的错误是:

Msg 102, Level 15, State 1, Line 12
Incorrect syntax near '1'.
Msg 102, Level 15, State 1, Line 17
Incorrect syntax near 'END'.

道歉,如果这是一个有点愚蠢的问题,但我真的很想弄清楚这一点。

1 个答案:

答案 0 :(得分:4)

试试这个:

DECLARE @NEWORGID INT 
SET @NEWORGID = 1

DECLARE @BOOKINGID INT
SET @BOOKINGID = 1

DECLARE @ORGANISATIONID INT
SET @ORGANISATIONID = 2




DECLARE @theID INT

SELECT @theID = 
CASE     (@NEWORGID) WHEN 1 THEN  @bookingid ELSE @ORGANISATIONID END

PRINT @theId

PRINT 
CASE     (@NEWORGID) WHEN 1 THEN  @bookingid ELSE  @ORGANISATIONID END