1つのステートメントでこれを実行できるかどうか尋ねられたので、ここでその答えを示します。私は助けることはできませんが、あなたがもっと多くの情報を与えたなら、あなたがこれをやっていることは、別の方法で解決すべきだと私は言っているでしょう。私はこれを行うための正当な理由を思い付くのに苦労している。これには関係なく、それを行う方法があります:
私はTable1がId、ParentId、およびNameを持っていると仮定し、そのTable2にはIdとNameがあります(あなたはTable2からFoo、Barという名前を持っています)。私はあなたが課すことができる命令があると仮定しています。
CREATE TABLE #T
(
Id INT IDENTITY(1, 1)
, ParentId INT
, Name VARCHAR(100)
)
CREATE TABLE #T2
(
Id INT IDENTITY(1, 1)
, Name VARCHAR(100)
)
INSERT #T2
(
Name
)
VALUES ('Foo'), ('Bar')
INSERT #T
(
ParentId
, Name
)
SELECT
NULLIF(IDENT_CURRENT('#T')
+ ROW_NUMBER() OVER(ORDER BY T2.Name)
- 2, (SELECT ISNULL(MIN(Id), 1) - 1 FROM #T))
, T2.Name
FROM #T2 T2
SELECT * FROM #T
DROP TABLE #T
DROP TABLE #T2
値リストはどういう意味ですか? – Hogan
@Hogan:Foo、Barなどの行を持つ別のテーブル(Table2)があります。(Insert ... selectを使用して)Table1に挿入したいのですが、Table1ではID-ParentIdリレーションを作成する必要がありますこれらの値。 – JohnDoDo
表2のparen子関係ロジックとは何ですか? ASCで注文し、別の注文をDESCで注文することができます。 ??? – Kaf