الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

زيادة الرقم باستخدام SELECT؟؟

بدأه ميقات في 5 مارس 2012 · 6 رد · 556 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي ارقام ابيها تكون مخزنه بهالطريقة:

0001

0002

.

.

.

0010

بحيث انه النظام كل مرة يتأكد من الرقم الاكبر المدخلة في الجدول ويزيده بواحد. وهي القيم مخزنة ك varchar

انا عملت sql select stetment لكن المشكلة انه الرقم اللي يأتي عندي يكون بس 2 مثلا بدون الاصفار اللي جهة اليسار.

شنو حل المشكلة ؟؟



SELECT CAST(ISNULL(CAST(MAX(SUBSTRING(item_id, 1, 4)) + 1 AS char(4)), '0001') AS char(4)) AS idcolumn

#2

السلام عليكم

كفكرة سريعه وبسيطه بامكانك استعمال ال concatenation وتضيف الاصفار قبل الرقم

SELECT    '0000'+ CAST(ISNULL(CAST(MAX(SUBSTRING(item_id, 1, 4)) + 1 AS char(4)), '0001') AS char(4)) AS idcolumn
#3

أذا وضعت "0000" قبلها يعني على طول الرقم راح يكون قبل 4 اصفار

يعني لو صار الرقم 100 راح يكوا 0000100

وانا الا ابيه يكون كل ما زاد الرقم قلت الاصفار اللي قبله

مثل

0001

.

.

0022

.

.

0100

اعتقد لازم يكون شي غير يظهر لي الاصفار اللي قبل...

#4

جرب هذا الكود الرابط

الرابط الخاص بي

او جرب هذا الكود

SELECT  Right('000000'+ltrim(rtrim(CAST(ISNULL(CAST(MAX(GovernCode) + 1 AS char(4)), '0001') AS char(4)))),4) AS idcolumn
FROM         _Governorates1

تم تعديل هذه المشاركة بواسطة KARIMSOFT في 14 مارس 2012 في 23:27

#5

يمكنك استخدام هذا الكود

بدل رقم 5 باقيمه اللى تريدها ورقم 4 بعدد الاصفار التى تريد اضافتها

SELECT REPLICATE('0',(4-LEN('5'))) + '5'
#6

لكن هذه الطريقة ستؤثر على الاظهار و ليس على التخزين...

طلب الأخ ميقات أن تكون الأرقام مخزنة بهذا التنسيق و ليس تعرض بهذا التنسيق

إذا كان فهمي صحيح فأظن أن عليك تخزين الرقم كنص في قاعدة البيانات بعد إضافة الأصفار

لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ


أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو


أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ


لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ


لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ


إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ


#7

استخدمت function right وكتب بدل ''00000" 100000 وضبط عندي

وتخزن بنفس الطريقة اللي انا كنت طالبتها

مشكورين جميعا على المساعدة

مواضيع مشابهة