سؤال

أريد أن أنجز شيئًا مما يلي:

Select DISTINCT(tableA.column) INTO tableB.column FROM tableA

سيكون الهدف هو تحديد مجموعة بيانات مميزة ثم إدراج تلك البيانات في عمود معين من جدول جديد.

هل كانت مفيدة؟

المحلول

أنت هناك إلى حد كبير.

SELECT DISTINCT column INTO tableB FROM tableA

سوف يتم إدراجه في أي عمود) يتم تحديده في قائمة التحديد ، لذلك ستحتاج إلى توصيل القيم الخاصة بك إذا كنت بحاجة إلى إدراجها في أعمدة tableB التي ليست في tableA.

اختر في

نصائح أخرى

SELECT column INTO tableB FROM tableA

SELECT INNE SYNE SCEENT A TAME أثناء إدراج سجلات جديدة فيه. إذا لم يكن هذا ما تريده (إذا كان Tableb موجودًا بالفعل) ، فستحتاج إلى فعل شيء مثل هذا:

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

تذكر أنه إذا كان لدى TableB المزيد من الأعمدة التي فقط ، فستحتاج إلى سرد الأعمدة التي سيتم إدراجها فيها (كما فعلت في مثالي).

حاول القيام بما يلي...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
سيكون الهدف هو تحديد مجموعة بيانات مميزة ثم إدراج تلك البيانات في عمود معين من جدول جديد.

لا أعرف ما هو مخطط TableB ... إذا كان الجدول B موجودًا بالفعل ولا يوجد أي قيد فريد على العمود الذي يمكنك القيام به كما يوحي أي من الآخرين هنا ....

INSERT INTO tableB (column)Select DISTINCT(tableA.column)FROM tableA

ولكن إذا كان لديك قيد فريد على الجدول B وكان موجودًا بالفعل ، فسوف يتعين عليك استبعاد هذه القيم بالفعل في الجدول B ...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
WHERE tableA.column NOT IN (SELECT /* NOTE */ tableB.column FROM tableB)
-- NOTE: Remember if there is a unique constraint you don't need the more
-- costly form of a "SELECT DISTICT" in this subquery against tableB
-- This could be done in a number of different ways - this is just
-- one version. Best version will depend on size of data in each table,
-- indexes available, etc. Always prototype different ways and measure perf.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top