RTRIM(value)
は、value
文字列のすべての後続スペースを削除します。
C.FIRST_NAME
|| RTRIM(' ' || C.MIDDLE_NAME)
|| ' ' || C.LAST_NAME
|| RTRIM(' ' || C.NAME_SUFFIX)
オラクル:あなたはvalue
にスペースを付加し、その後RTRIM()
を使用する場合value
はNULL
またはスペースで完全に構成されている場合ので、その後、その後、文字列全体は連結を変更されませんNULL
を残す剥ぎ取られますセットアップ:
テストデータのために@mathguyに感謝します。
CREATE TABLE table_name (first_name, middle_name, last_name, name_suffix) AS
SELECT 'John', 'D', 'Smith', ' ' FROM DUAL UNION ALL
SELECT 'Mary', 'Ann', 'Loury', null FROM DUAL UNION ALL
SELECT 'Chris', null, 'Robson', 'III' FROM DUAL UNION ALL
SELECT 'Greg' , 'Z.', 'Olson', 'Jr.' FROM DUAL UNION ALL
SELECT 'Helen', ' ', 'Webb-Hunt', ' ' FROM DUAL;
クエリ:
SELECT C.FIRST_NAME
|| RTRIM(' ' || C.MIDDLE_NAME)
|| ' ' || C.LAST_NAME
|| RTRIM(' ' || C.NAME_SUFFIX)
AS full_name
FROM table_name c;
出力:case
条件に基づいて
FULL_NAME
-----------------------
John D Smith
Mary Ann Loury
Chris Robson III
Greg Z. Olson Jr.
Helen Webb-Hunt
出典
2016-07-01 19:23:55
MT0
はこの質問を削除します。次に、別の質問をして、サンプルデータと希望の結果を提供します。次に、あなたがしたいことを説明し、問題を解決しようとするコード(上記のようなもの)を提供してください。 –
''''はOracleでは 'NULL'です。だから 'c.middle_name = '''は決して真ではないでしょう( 'NULL'は決して他の' NULL'を含む他の値と等しくないので)。 – MT0