在SQL Server视图中使用IF

b34*_*34r 1 sql t-sql sql-server conditional views

我在SQL服务器中有一个视图,它从一个模式版本转换为另一个模式版本.
目前,视图如下所示:

SELECT newValue AS oldValue  
FROM dbo.MyTable
Run Code Online (Sandbox Code Playgroud)

麻烦的是,在新模式中,newValue不可为空,因此我们将其设置为-1表示空字段,但在旧模式中,它可以为空.

我该怎样做才能达到以下效果:

SELECT  
(  
  IF( newValue > -1 )  
    newValue as oldValue  
  ELSE  
    NULL as oldValue
)  
FROM dbo.MyTable
Run Code Online (Sandbox Code Playgroud)

Fra*_*ank 7

SELECT  
  case when newValue > -1 then  
    newValue  
  else  
    NULL
  end as oldValue
FROM dbo.MyTable
Run Code Online (Sandbox Code Playgroud)