2017-01-24 12 views
0

FirstName、LastName、MiddleNameの列があり、MiddleNameがNULLで給与を加えたテーブルがあるビューを作成したいとします。私は、ミドルネームを、ミドルネームがないところで空の文字列に置き換える必要があります。私はSQL Management Studioを使用しています。 私はこのコードを思い付いた:ビューの作成。 NULL値を空の文字列に置き換える。 SQL

CREATE VIEW V_EmployeeNameJobTitle AS 
SELECT FirstName + ' ' + MiddleName + ' ' + LastName AS [Fullname], Salary FROM Employees WHERE MiddleName IS NOT NULL 
UNION SELECT FirstName + ' ' + LastName AS [Fullname], Salary FROM Employees WHERE MiddleName IS NULL 

しかし、私はしたかった、それは非常にきれいではありませんので、これは動作するようには思えません。どのように私はこれを短縮するかもしれない他の提案。前もって感謝します。

+0

'合体(列、 '')' EXについて。 – jarlh

答えて

1

それはあなたが選択した値をint NULL値を置き換えISNULL()機能を使用します。

CREATE VIEW V_EmployeeNameJobTitle AS 
SELECT FirstName + ' ' + ISNULL(MiddleName, '') + ' ' + LastName AS [Fullname], Salary 
FROM Employees 

やミドルネームがnullのときに2つのスペースを取得したくない場合、あなたは以下を受けることができます:

CREATE VIEW V_EmployeeNameJobTitle AS 
SELECT (CASE WHEN MiddleName IS NULL THEN FirstName + ' ' + LastName 
      ELSE FirstName + ' ' + MiddleName + ' ' + LastName END) AS [Fullname], 
Salary 
FROM Employees 
2
SELECT FirstName + ' ' + 
     (case when MiddleName is null then '' else MiddleName + ' ' end) + 
     LastName AS [Fullname] 
+1

しかし、私はFirstNameとLastNameの間にただ一つのスペースが必要です。私がcoalesceまたはisNullを使うだけでは2つのスペースがありませんか? –

+0

はい。私はちょうどそれに答えて、あなたのケースを考慮に入れました – Zeina

0

使用IsNull機能

CREATE VIEW V_EmployeeNameJobTitle AS 
    SELECT FirstName + ' ' 
     + MiddleName + ' ' 
     + IsNull(LastName, '') AS [Fullname] 
    , Salary 
FROM Employees 
関連する問題