الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف أحذف القيم المكررة في جدول

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته
السؤال ده مهم وجميل في نفس الوقت
اذا كان في تيبل كالاتي
Names

ID N
--- ----
1 as
1 as
1 as
2 db
2 db
2 db
2 db
2 db
وهذا الجدول ليس به برايمري كي او يونيك ...فكيف نستطيع حذف المكرر بحيث تصبح النتيجة بعد جملة الدليت كالاتي
ID N
--- ----
1 as
2 db

مع أطيب التمنيات بالتوفيق

بتاريخ:

بسم الله الرحمن الرحيم

يمكن عمل هذا عن طريق تخليق جدول آخر وتأخد فيه القيم مع عدم التكرار .

create table tab_name2 as select distinct id_n from tab_name1

بتاريخ:
فكيف نستطيع حذف المكرر

اى اننا لن نقوم بعمل جدول اخر .

و من ثم فسوف نقوم الأن ببناء الجدول و اضافة البيانات .... ثم نكتب الكود الذى سيحذف القيم المكرره ...... كالتالى :-

create table t1 ( id number , N varchar2(11));

insert into t1 values (1,'as');
insert into t1 values (1,'as');
insert into t1 values (1,'as');
insert into t1 values (1,'as');
insert into t1 values (2,'db');
insert into t1 values (2,'db');
insert into t1 values (2,'db');
insert into t1 values (2,'db');

commit;



و هذا هو الكود الذى سيحذف القيم المكرره :-

DELETE FROM t1 a
     WHERE a.ROWID > ANY (SELECT b.ROWID
                            FROM t1 b
                           WHERE a.ID = b.ID AND a.n = b.n);



و الناتج سيكون :-

SQL> select * from t1;

	ID N
---------- -----------
	 1 as
	 2 db



و بالتوفيق للجميع

بتاريخ:

Also, you can use this:



DELETE FROM test WHERE rowid not in (SELECT SUM(rowid) FROM test GROUP BY id)
بتاريخ:

أخى العزيز Slamonty

شكراً لمشاركتك ..... و لكن انا لا اعرف اذا كنت قمت بتجريب كودك قبل وضعه فى المنتدى ام لا ..... لأن الكود لم ينفع معى .... فبعد تجريب كودك على مثالى ( طبعاً بأستبدال جدول ال test الذى ذكرته بكودك بجدول ال t1 الذى كتب بكودى به فى المشاركة السابقة ) و كانت هذه هى النتيجة :-

SQL> DELETE FROM t1 WHERE rowid not in (SELECT SUM(rowid) FROM t1 GROUP BY id);
DELETE FROM t1 WHERE rowid not in (SELECT SUM(rowid) FROM t1 GROUP BY id)
                                             *
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected NUMBER got ROWID



that's all
have a nice day

بتاريخ:

Thank you for your attention,I am sorry for the mistake,

kindly, change the SUM function to MAX or MIN in the code, it will work well in shaa allah

DELETE FROM t1 WHERE rowid not in (SELECT MAX(rowid) FROM t1 GROUP BY id);

بتاريخ:

DELETE FROM t1 WHERE ROWID NOT IN (SELECT   MAX (ROWID)
     FROM t1 GROUP BY ID);

6 rows deleted.

SQL> SELECT * FROM t1; ID N
---------- -----------
        1 as 2 db



working great ...... thanks a lot for your participation

تم تعديل بواسطة hanyfreedom

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.