2014-04-28 1 views
1

Ceci est mon avisvaleur nulle force de T-SQL fondée sur la condition

SELECT e.Text AS StatusText, 
     a.Created AS [DATE], 
     a.Username, 
     b.Name AS CustomerName, 
     c.Name AS ServiceName, 
     d.Message AS DeviationMessage 
    FROM dbo.StatusUpdate AS a 
     LEFT OUTER JOIN dbo.Customer AS b ON a.CustomerId = b.CustomerID 
     LEFT OUTER JOIN dbo.Service AS c ON a.ServiceId = c.ServiceID 
     LEFT OUTER JOIN dbo.Deviation AS d ON a.DeviationId = d.DeviationID 
     LEFT OUTER JOIN dbo.StatusText AS e ON a.Status = e.ID 

Ce que je voudrais faire est la suivante: Quand est 2 ou 3 a.Status (int), je voudrais forcer. Nom d'utilisateur à afficher en tant que NULL. Comment dois-je aborder cela?

Répondre

5

Essayez ceci:

SELECT e.Text AS StatusText, 
     a.Created AS [DATE], 
     CASE a.status 
      WHEN 2 THEN NULL 
      WHEN 3 THEN NULL 
      ELSE a.Username 
     END, 
     b.Name AS CustomerName, 
     c.Name AS ServiceName, 
     d.Message AS DeviationMessage 
    FROM dbo.StatusUpdate AS a 
     LEFT OUTER JOIN dbo.Customer AS b ON a.CustomerId = b.CustomerID 
     LEFT OUTER JOIN dbo.Service AS c ON a.ServiceId = c.ServiceID 
     LEFT OUTER JOIN dbo.Deviation AS d ON a.DeviationId = d.DeviationID 
     LEFT OUTER JOIN dbo.StatusText AS e ON a.Status = e.ID 
+0

Fonctionne! Je vous remercie! –

+0

De rien. – Guneli

1

Vous pouvez y parvenir assez facilement avec un statment de cas.

donc quelque chose comme

CASE WHEN Status = 3 THEN USERNAME IS NULL 

Ce n'est pas testé, mais l'idée est là.

Questions connexes