2010-08-18 13 views
1

J'ai une vue dans le serveur SQL qui traduit d'une version de schéma à l'autre.
Actuellement, le point de vue ressemble à ceci:en utilisant IF dans une vue SQL Server

SELECT newValue AS oldValue 
FROM dbo.MyTable 

Le problème est que, dans le nouveau schéma, newValue n'est pas annulable, donc nous l'avons fixé à -1 pour désigner les champs vides, mais dans l'ancien schéma, c'était nullable.

Comment puis-je faire quelque chose à l'effet de:

SELECT 
( 
    IF(newValue > -1) 
    newValue as oldValue 
    ELSE 
    NULL as oldValue 
) 
FROM dbo.MyTable 

Répondre

7
SELECT 
    case when newValue > -1 then 
    newValue 
    else 
    NULL 
    end as oldValue 
FROM dbo.MyTable 
+0

+1: Bats-moi de 11 secondes –

+0

Impressionnant, merci beaucoup :) Je vais marquer comme réponse dès qu'il LETs moi. – b34r

+0

Comment cela compare-t-il la vitesse Vs COALESCE? –