1

かなりの検索を行い、計算列を構成する方法の多くの例を見つけましたが、これについては何も見つかりませんでした.

LastName と FirstName の 2 つの列があります。場合によっては、これらの列のいずれかが ですNULL

私の計算列の構文は

((CONVERT([varchar](max),[LastName],(0))+',  ')+CONVERT([varchar](max),[FirstName],(0))

両方の列にデータがある場合、これはうまく機能します。
ただし、どちらか一方がNULLの場合、計算列には が入力されNULLます。

4

1 に答える 1

1

文字列を連結するnullと になります。詳細については、こちらnullの備考セクションを参照してください。

ヌルを適切に処理する必要があります

CREATE TABLE People 
(
  Firstname VARCHAR(50), 
  Lastname VARCHAR(50) NOT NULL, 
  Fullname AS CAST(CASE WHEN Firstname IS NOT NULL 
                        THEN Lastname + ', ' + Firstname 
                        ELSE Lastname END AS VARCHAR(105))
)

デモ

間違いなく、姓と名の両方のないフルネームにすることはできますか? おそらくここでnullは意味があります

編集:またはどちらFirstnameLastnameがnullになる可能性がある場合は、代わりにこのようなことをしたいでしょう

CASE WHEN Firstname IS NULL OR Lastname IS NULL THEN COALESCE(Firstname, Lastname)
     ELSE Lastname + ', ' + Firstname END

デモ

于 2013-08-07T20:38:44.937 に答える