Q: INSERT INTO table_name VALUES (value1, value2, value3, ...);How to transfer a data of a single column in a single table row Hi guys I'm working on a vanilla system where we can add many systems in it with data sets and fields. we can add fields and data of each system at run time without changing the structure of database.
CREATE TABLE Type(
    ID int,
    Name varchar(255),
    PRIMARY KEY (ID)
);

INSERT INTO Type VALUES (1, 'cust_obj_7');   

INSERT INTO Type VALUES (2, 'cust_obj_8');

CREATE TABLE Object(
    ID int,
    Name varchar(255),
    Description varchar(255),
    TypeID int,
    PRIMARY KEY (ID),
    FOREIGN KEY (TypeID ) REFERENCES Type(ID)
);

    INSERT INTO Object VALUES (1, 'First', 'First_desc', 1);

    INSERT INTO Object VALUES (2, 'Second', 'Second_desc', 1);

CREATE TABLE TypeFields(
    ID int,
    Name varchar(255),
    NameType varchar(255),
    TypeID int,
    PRIMARY KEY (ID),
    FOREIGN KEY (TypeID ) REFERENCES Type(ID)
);

 INSERT INTO TypeFields VALUES (1, 'First', 'str', 1);

 INSERT INTO TypeFields VALUES (2, 'Seond', 'str', 1);

 INSERT INTO TypeFields VALUES (3, 'Third', 'int', 1);

CREATE TABLE FieldsData(
    ID int,
    ObjectID int,
    FieldID int,
    FieldName varchar(255),
    TypeID int,
    value varchar(255),
    PRIMARY KEY (ID),
    FOREIGN KEY (TypeID ) REFERENCES Type(ID),
    FOREIGN KEY (ObjectID ) REFERENCES Object(ID),
    FOREIGN KEY (FieldID ) REFERENCES TypeFields(ID)
);

 INSERT INTO VALUES (1, 1, 1, 'First', 1, "a");
 INSERT INTO VALUES (2, 1, 2, 'Second', 1, "b");
 INSERT INTO VALUES (3, 1, 3, 'Third', 1, "120");
 INSERT INTO VALUES (4, 2, 1, 'First', 1, "c");
 INSERT INTO VALUES (5, 2, 2, 'Second', 1, "d");
 INSERT INTO VALUES (6, 2, 3, 'Third', 1, "130");

CREATE TABLE FinalTable(
        ObjID int,
        ObjName varchar(255),
        ObjDesc varchar(255),
        First varchar(255),
        Second varchar(255),
        Third int
    );

Data will look like this

Insert Into FinalTable
select *
from object, fieldsdata
where object.iD = fieldsdata.objectiD

Values(object.ID , object.Name, object.Description, ....... );

I want to create a single data set form these tables as finaltable as shown above. I can get all the data using keys but I'm having issue to write that data to a single row from a column of different rows. I'm stuck that how can I achieve this using sql in sas-base.

A: First, "My custom table" should be a view originating from "Fields data".  "Fields data" is a bit of a misnomer because it contains the values of the fields.  So in an abstraction that distinction is important for understanding within the framework you are building.
A row in "My custom table" appears to be for projecting TypeID=1.  You don't show other TypeID values, but I presume they would be for different custom tables.
The custom tables should really be views, otherwise each object is a potential +1 to a multiplier regarding storage requirements
In your sample image the second row of "My custom table" has ObjID=2, yet shows values from the "Fields data" that correspond to ObjID=2.  I will presume a typo.
The "Object types" name is not rendered in the Custom table, thus I would consider it simply a catalog of types.
The design you present is not a normal form yet.  Not sure why FieldName is replicated in "Fields data", you have the FieldID that refers to a record with the name.  Not sure why TypeID is present in "Fields data" because TypeID is essentially a catalog item selector for the desired projection of the "Fields data"
This kind of design can cause a lot of reinvention and will take huge amounts of time to flesh out for different value types such as dates, value rendering formats, multivalued types, etc...
Regardless, the projection of the values data as an object type to a custom table is essentially a transposition of a join that combines object, type fields, and fields data.  SAS SQL does not have a PIVOT operator (such as is found in MS SQL Server).  The 'old school' way to pivot in SQL involves aggregating case statements over a by group.  Search SO
There are some designs for an 'arbitrarium' that simply kill all the middle men and have a single enormous values monolith with say 20 ID fields, 1,000 numeric fields, 1,000 character fields and 100 date fields and each 'object' is a use-case SQL view against it.
** EDIT - ADDED BELOW **
Added code demonstrating 'old school' pivot:
PROC SQL; 

CREATE TABLE Type(
    ID int,
    Name varchar(255)/*,
    PRIMARY KEY (ID)*/
);

INSERT INTO Type VALUES (1, 'cust_obj_7');   
INSERT INTO Type VALUES (2, 'cust_obj_8');

CREATE TABLE Object(
    ID int,
    Name varchar(255),
    Description varchar(255),
    TypeID int/*,
    PRIMARY KEY (ID),
    FOREIGN KEY (TypeID ) REFERENCES Type(ID);*/
);

    INSERT INTO Object VALUES (1, 'First', 'First_desc', 1);
    INSERT INTO Object VALUES (2, 'Second', 'Second_desc', 1);

CREATE TABLE TypeFields(
    ID int,
    Name varchar(255),
    NameType varchar(255),
    TypeID int/*,
    PRIMARY KEY (ID),
    FOREIGN KEY (TypeID ) REFERENCES Type(ID) */
);

 INSERT INTO TypeFields VALUES (1, 'First', 'str', 1);
 INSERT INTO TypeFields VALUES (2, 'Seond', 'str', 1);
 INSERT INTO TypeFields VALUES (3, 'Third', 'int', 1);

CREATE TABLE FieldsData(
    ID int,
    ObjectID int,
    FieldID int,
    FieldName varchar(255),
    TypeID int,
    value varchar(255)/*,
    PRIMARY KEY (ID),
    FOREIGN KEY (TypeID ) REFERENCES Type(ID),
    FOREIGN KEY (ObjectID ) REFERENCES Object(ID),
    FOREIGN KEY (FieldID ) REFERENCES TypeFields(ID)*/
);

 INSERT INTO FieldsData VALUES (1, 1, 1, 'First', 1, "a");
 INSERT INTO FieldsData  VALUES (2, 1, 2, 'Second', 1, "b");
 INSERT INTO FieldsData  VALUES (3, 1, 3, 'Third', 1, "120");
 INSERT INTO FieldsData  VALUES (4, 2, 1, 'First', 1, "c");
 INSERT INTO FieldsData  VALUES (5, 2, 2, 'Second', 1, "d");
 INSERT INTO FieldsData  VALUES (6, 2, 3, 'Third', 1, "130");

CREATE TABLE FinalTable(
        ObjID int PRIMARY KEY,
        ObjName varchar(255),
        ObjDesc varchar(255),
        First varchar(255),
        Second varchar(255),
        Third int
    );

create view example_type1_realized as
    select 
      FieldsData.ObjectID as ObjID
    , max(Object.Name) as ObjName
    , max(Object.Description) as ObjDesc
    , max(case when FieldID=1 then Value end) as First
    , max(case when FieldID=2 then Value end) as Second
    , max(case when FieldID=3 then input(Value,best12.) end) as Third
    from FieldsData 
    join Object 
      on FieldsData.ObjectID = Object.ID
    where TypeID = 1
    group by ObjID
    ;  

Now, for each TypeID you will need to construct a code generator that can create the source code wallpaper ... max(case when ... construct.  from the TypeFields data.
Here is one way:
* Now a codegener macro that can produce the example realization: ;

%macro realize (TypeID=, out=);
  %local wallpaper;

  proc sql noprint;

    select cat
    (
      ', max(case when FieldID=', cats(ID), ' then '
      , case 
          when NameType='str' then 'Value'
          when NameType='int' then 'input(Value,12.)'
          else 'cats(Value) || " (' || NameType || ') unhandled"'
        end
      , ' end)'
      , ' as ', Name
    ) length=32000
    into :wallpaper separated by ' '
    from TypeFields
    where TypeID = &TypeID
    ;

%put NOTE: wallpaper=%SUPERQ(wallpaper);

    create &out as 
      select 
        FieldsData.ObjectID as ObjID
      , max(Object.Name) as ObjName
      , max(Object.Description) as ObjDesc
      &wallpaper
      from FieldsData 
      join Object 
        on FieldsData.ObjectID = Object.ID
      group by ObjID
      ;
  quit;
%mend;

options mprint;
%realize(TypeID=1, out=table type1_replicate)

You can modify the codegener so that it will insert rows into an out= instead of creating anew. 
You should see that your system is workable but needs alot of attention to become generic.  Each FieldType might get format, informat, length, date handling, error handling for out-of-range values for type, field sequence, etc...
