我有一個表SubCategory,其資料是這樣的:
我寫了一個插入腳本,將distinct CategoryName插入到另一個表中:
INSERT INTO Category (CategoryName)
SELECT CategoryName
FROM[/span
(SELECT DISTINCT)
類別名稱。
DENSE_RANK() OVER (PARTITION BY CategoryName, ORDER BY orderby) AS Row
FROM SubCategory fr
WHERE NOT EXISTS (SELECT 1 FROM Category fr1
WHERE fr1.CategoryName = fr.CategoryName) ) x
我能夠得到不同的結果,但是categoryName應該被插入到子類別表的orderby列中
這是我正在做的一個小游戲
http://sqlfiddle.com/#!18/54974/2uj5u.com熱心網友回復:
根據SQL語言的設計,插入的資料的順序并不重要。你應該在新表中創建主索引鍵,并通過該索引進行排序。
CodePudding
你可以使用cte或temp表,并對其運行order by。CREATE TABLE SubCategory
(
RowId INT IDENTITY(1,1)。
SubCategoryName NVARCHAR(500)。
CategoryName NVARCHAR(500)。
OrderByINT。
)
創建 TABLE Category
(
RowId INT IDENTITY(1,1) 。
CategoryName NVARCHAR(500)
)
INSERT INTO SubCategory
VALUES ('SubCategory1', 'Category', 1), ('SubCategory2', 'Category', 1) 。
('SubCategory1', 'Another', 2) 。('SubCategory2', 'Another', 2) 。
('SubCategory2', 'bowled', 3)
WITH cteorder AS
(
SELECT DISTINCT
類別名稱,順序排列
FROM SubCategory fr
)
INSERT INTO Category(CategoryName)。
SELECT CategoryName FROM cteorder ORDER BY Orderby
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/323120.html
標籤:

