Transact-SQL を使用して Microsoft SQL Server 2005 に取り組んでいます。
NULL 値を扱う同じテーブルの異なる列からの文字列値を連結しようとしています。
たとえば、テーブルがPerson
で、列がFirstName
、SurnamePrefix
、LegalSurname
文字列値と NULL 値 (2 つの異なる列から取得) を連結すると、出力に NULL 値が返されることがありました。出力の NULL 値を防ぐために、さまざまなシナリオを試しました。
- から始まる:
Person.FirstName + ' ' + COALESCE(RTRIM(LTRIM(Person.SurnamePrefix)) + ' ', '') + Person.LegalSurname
- ステートメントを次のように変更しました。
COALESCE(Person.FirstName + ' ', '') + COALESCE(Person.SurnamePrefix, '') + COALESCE(' ' + Person.LegalSurname, '')
ISNULL()
その後、NULLIF()
などの関数に出くわしました。
NULL 値ではなく空の文字列値を出力に表示するための最良かつ効率的な方法はどれですか? ソリューションは SQL Server のバージョンの影響を受けますか? (つまり、2005 年、2008 年など)