T-SQL: إزالة الفواصل العشرية من نوع البيانات النقدية
عند العمل مع البيانات المالية في SQL Server، وخاصة باستخدام لغة T-SQL، قد تجد نفسك بحاجة إلى معالجة الأرقام بطريقة تزيل منها الفواصل العشرية. بالنسبة لأولئك الذين يستخدمون نوع البيانات النقدية في SQL Server 2005، قد تتساءل عما إذا كان هناك نهج أفضل من تحويل الرقم إلى سلسلة ومن ثم إزالة الفاصل العشري من خلال معالجة السلسلة. دعنا نستكشف طريقة فعالة لتحقيق ذلك.
النهج الشائع
يتعامل العديد من مطوري SQL مع إزالة الفواصل العشرية من الأنواع النقدية عن طريق تحويل الرقم إلى varchar أولاً واستخدام دالة REPLACE
. على سبيل المثال:
SELECT REPLACE(1.23, '.', ''), REPLACE(19.99, '.', '')
هذا الكود يستبدل الفاصلة العشرية، مما ينتج عنه الأعداد الصحيحة المطلوبة 123 و 1999. ومع ذلك، يمكن أن يبدو هذا النهج غير عملي وليس مثاليًا من حيث الأداء أو القراءة.
حل أكثر كفاءة
حل أكثر أنيقة يسمح لك بتحقيق نفس النتيجة دون تحويلات غير ضرورية. بدلاً من التحويل إلى سلسلة نصية، يمكنك مضاعفة قيمة المال بمقدار 100 ثم تحويلها إلى INT. هذه الطريقة بسيطة وتستخدم ميزات T-SQL بشكل فعال. إليك كيفية القيام بذلك:
خطوات التنفيذ
- مضاعفة قيمة المال بمقدار 100: هذا يحرك الفاصلة العشرية مكانين إلى اليمين. على سبيل المثال،
1.23
يصبح123
و19.99
يصبح1999
. - التحويل إلى INT: التحويل إلى INT يتخلص من أي فواصل عشرية، مما يترك لك رقمًا صحيحًا نظيفًا.
مثال على التنفيذ
إليك مثال عملي لتوضيح الحل قيد التنفيذ:
SELECT CAST(1.23 * 100 AS INT) AS Amount1,
CAST(19.99 * 100 AS INT) AS Amount2
هذا الكود سيعيد:
Amount1
: 123Amount2
: 1999
لماذا يُفضل هذا النهج
- الأداء: المضاعفة والتحويل عمومًا أسرع من معالجة السلاسل، خاصة مع مجموعات البيانات الكبيرة.
- البساطة: الكود أسهل في القراءة والصيانة، مما يجعله بسيطًا لأي شخص يراجع أو يستخدم نصوص SQL.
- سلامة البيانات: من خلال البقاء ضمن أنواع الأرقام وتجنب التحويل إلى سلاسل نصية، تقوم بتقليل مخاطر إدخال الأخطاء أو التصرفات غير المتوقعة بسبب التنسيق غير الصحيح.
الخاتمة
باستخدام T-SQL في SQL Server 2005، يمكن إزالة الفواصل العشرية من أنواع البيانات النقدية بكفاءة عن طريق مضاعفة القيمة بمقدار 100 وتحويلها إلى عدد صحيح. هذه الطريقة أبسط وأسرع وتضمن سلامة البيانات. في المرة القادمة التي تحتاج فيها إلى معالجة قيم المال في استعلاماتك، اعتبر هذه الطريقة كحل أنظف وأكثر فعالية.