Concatenate 3 Columns into 1 Column automatically Postgresql










0















Columns:
FirstName
MiddleName
LastName


I want to automatically concatenate into a 4th column called 'FullName' separated by spaces Every time data is entered or changed in one of the above 3 columns the 'FullName' column is updated.



Sample Data










share|improve this question
























  • see this thread so

    – dwir182
    Nov 15 '18 at 2:15











  • Please check my answer and accept/upvote it if it worked for you so that it would also help others seeking answers.Please read : stackoverflow.com/help/someone-answers

    – Kaushik Nayak
    Dec 19 '18 at 15:40















0















Columns:
FirstName
MiddleName
LastName


I want to automatically concatenate into a 4th column called 'FullName' separated by spaces Every time data is entered or changed in one of the above 3 columns the 'FullName' column is updated.



Sample Data










share|improve this question
























  • see this thread so

    – dwir182
    Nov 15 '18 at 2:15











  • Please check my answer and accept/upvote it if it worked for you so that it would also help others seeking answers.Please read : stackoverflow.com/help/someone-answers

    – Kaushik Nayak
    Dec 19 '18 at 15:40













0












0








0








Columns:
FirstName
MiddleName
LastName


I want to automatically concatenate into a 4th column called 'FullName' separated by spaces Every time data is entered or changed in one of the above 3 columns the 'FullName' column is updated.



Sample Data










share|improve this question
















Columns:
FirstName
MiddleName
LastName


I want to automatically concatenate into a 4th column called 'FullName' separated by spaces Every time data is entered or changed in one of the above 3 columns the 'FullName' column is updated.



Sample Data







postgresql concatenation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 15 '18 at 1:40







Ohmsy

















asked Nov 15 '18 at 1:09









OhmsyOhmsy

31




31












  • see this thread so

    – dwir182
    Nov 15 '18 at 2:15











  • Please check my answer and accept/upvote it if it worked for you so that it would also help others seeking answers.Please read : stackoverflow.com/help/someone-answers

    – Kaushik Nayak
    Dec 19 '18 at 15:40

















  • see this thread so

    – dwir182
    Nov 15 '18 at 2:15











  • Please check my answer and accept/upvote it if it worked for you so that it would also help others seeking answers.Please read : stackoverflow.com/help/someone-answers

    – Kaushik Nayak
    Dec 19 '18 at 15:40
















see this thread so

– dwir182
Nov 15 '18 at 2:15





see this thread so

– dwir182
Nov 15 '18 at 2:15













Please check my answer and accept/upvote it if it worked for you so that it would also help others seeking answers.Please read : stackoverflow.com/help/someone-answers

– Kaushik Nayak
Dec 19 '18 at 15:40





Please check my answer and accept/upvote it if it worked for you so that it would also help others seeking answers.Please read : stackoverflow.com/help/someone-answers

– Kaushik Nayak
Dec 19 '18 at 15:40












2 Answers
2






active

oldest

votes


















0














giving a mysql answer since you left a mysql tag:



In MySQL you can create a generated column, using the CONCAT_WS function.






share|improve this answer






























    0














    Postgres doesn't support( as of Version 11 ) a Virtual column / derived column.



    You may create a View instead.



    CREATE OR replace VIEW v_names 
    AS
    SELECT firstname,
    middlename,
    lastname,
    firstname
    ||CASE
    WHEN nullif(middlename, '') IS NULL THEN ''
    ELSE ' '
    ||middlename
    END
    ||CASE
    WHEN nullif(lastname, '') IS NULL THEN ''
    ELSE ' '
    ||lastname
    END AS FullName
    FROM names;



    knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John', 'Maynard','Keynes');
    INSERT 0 1
    knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John','','Doe');
    INSERT 0 1

    knayak=# select * from v_names;
    firstname | middlename | lastname | fullname
    -----------+------------+----------+---------------------
    John | Maynard | Keynes | John Maynard Keynes
    John | | Doe | John Doe





    share|improve this answer






















      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311050%2fconcatenate-3-columns-into-1-column-automatically-postgresql%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      giving a mysql answer since you left a mysql tag:



      In MySQL you can create a generated column, using the CONCAT_WS function.






      share|improve this answer



























        0














        giving a mysql answer since you left a mysql tag:



        In MySQL you can create a generated column, using the CONCAT_WS function.






        share|improve this answer

























          0












          0








          0







          giving a mysql answer since you left a mysql tag:



          In MySQL you can create a generated column, using the CONCAT_WS function.






          share|improve this answer













          giving a mysql answer since you left a mysql tag:



          In MySQL you can create a generated column, using the CONCAT_WS function.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 15 '18 at 1:19









          danblackdanblack

          2,7021420




          2,7021420























              0














              Postgres doesn't support( as of Version 11 ) a Virtual column / derived column.



              You may create a View instead.



              CREATE OR replace VIEW v_names 
              AS
              SELECT firstname,
              middlename,
              lastname,
              firstname
              ||CASE
              WHEN nullif(middlename, '') IS NULL THEN ''
              ELSE ' '
              ||middlename
              END
              ||CASE
              WHEN nullif(lastname, '') IS NULL THEN ''
              ELSE ' '
              ||lastname
              END AS FullName
              FROM names;



              knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John', 'Maynard','Keynes');
              INSERT 0 1
              knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John','','Doe');
              INSERT 0 1

              knayak=# select * from v_names;
              firstname | middlename | lastname | fullname
              -----------+------------+----------+---------------------
              John | Maynard | Keynes | John Maynard Keynes
              John | | Doe | John Doe





              share|improve this answer



























                0














                Postgres doesn't support( as of Version 11 ) a Virtual column / derived column.



                You may create a View instead.



                CREATE OR replace VIEW v_names 
                AS
                SELECT firstname,
                middlename,
                lastname,
                firstname
                ||CASE
                WHEN nullif(middlename, '') IS NULL THEN ''
                ELSE ' '
                ||middlename
                END
                ||CASE
                WHEN nullif(lastname, '') IS NULL THEN ''
                ELSE ' '
                ||lastname
                END AS FullName
                FROM names;



                knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John', 'Maynard','Keynes');
                INSERT 0 1
                knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John','','Doe');
                INSERT 0 1

                knayak=# select * from v_names;
                firstname | middlename | lastname | fullname
                -----------+------------+----------+---------------------
                John | Maynard | Keynes | John Maynard Keynes
                John | | Doe | John Doe





                share|improve this answer

























                  0












                  0








                  0







                  Postgres doesn't support( as of Version 11 ) a Virtual column / derived column.



                  You may create a View instead.



                  CREATE OR replace VIEW v_names 
                  AS
                  SELECT firstname,
                  middlename,
                  lastname,
                  firstname
                  ||CASE
                  WHEN nullif(middlename, '') IS NULL THEN ''
                  ELSE ' '
                  ||middlename
                  END
                  ||CASE
                  WHEN nullif(lastname, '') IS NULL THEN ''
                  ELSE ' '
                  ||lastname
                  END AS FullName
                  FROM names;



                  knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John', 'Maynard','Keynes');
                  INSERT 0 1
                  knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John','','Doe');
                  INSERT 0 1

                  knayak=# select * from v_names;
                  firstname | middlename | lastname | fullname
                  -----------+------------+----------+---------------------
                  John | Maynard | Keynes | John Maynard Keynes
                  John | | Doe | John Doe





                  share|improve this answer













                  Postgres doesn't support( as of Version 11 ) a Virtual column / derived column.



                  You may create a View instead.



                  CREATE OR replace VIEW v_names 
                  AS
                  SELECT firstname,
                  middlename,
                  lastname,
                  firstname
                  ||CASE
                  WHEN nullif(middlename, '') IS NULL THEN ''
                  ELSE ' '
                  ||middlename
                  END
                  ||CASE
                  WHEN nullif(lastname, '') IS NULL THEN ''
                  ELSE ' '
                  ||lastname
                  END AS FullName
                  FROM names;



                  knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John', 'Maynard','Keynes');
                  INSERT 0 1
                  knayak=# INSERT INTO names(FirstName,MiddleName,LastName) VALUES ( 'John','','Doe');
                  INSERT 0 1

                  knayak=# select * from v_names;
                  firstname | middlename | lastname | fullname
                  -----------+------------+----------+---------------------
                  John | Maynard | Keynes | John Maynard Keynes
                  John | | Doe | John Doe






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 15 '18 at 3:33









                  Kaushik NayakKaushik Nayak

                  20.9k41332




                  20.9k41332



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311050%2fconcatenate-3-columns-into-1-column-automatically-postgresql%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Use pre created SQLite database for Android project in kotlin

                      Darth Vader #20

                      Ondo