简体   繁体   中英

Insert into from another table

Need help with this sql command.

Tables:

category ( category, id_category, salary, year)
oldcategory ( year, category, salary )

How could I get the data on oldcategory and insert it into category while creating at the same time a number id for each different category on id_category ?

INSERT INTO category(category, id_category, salary, year)
SELECT DISTINCT category, () , salary, year
FROM oldcategory
WHERE category IS NOT NULL AND salary IS NOT NULL AND year IS NOT NULL

Consider a correlated count aggregate for sequential numbers by alphabetical order of category:

INSERT INTO category(category, id_category, salary, year)
SELECT DISTINCT 
       category, 
       (SELECT Count(*) FROM 
                        (SELECT DISTINCT deepsub.category
                         FROM oldcategory deepsub) sub
        WHERE sub.category <= oldcategory.category) AS id_category, 
       salary, year
FROM oldcategory
WHERE category IS NOT NULL 
  AND salary IS NOT NULL 
  AND year IS NOT NULL
INSERT INTO CATEGORY(CATEGORY, ID_CATEGORY, SALARY, YEAR)
SELECT DISTINCT A.CATEGORY,DENSE_RANK() OVER(ORDER BY A.CATEGORY) AS ID_CATEGORY,
A.SALARY,A.YEAR FROM OLDCATEGORY AS A
WHERE A.CATEGORY IS NOT NULL AND A.SALARY IS NOT NULL AND A.YEAR IS NOT NULL
ORDER BY A.YEAR

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM