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

افيدوني ضروري .. استخدام الداله MID علي SQL 2008

مغلقمُجاب
بدأه عبدالعزيز المخزنجي في 8 أبريل 2013 · 8 رد · 931 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

 

الاخوة الكرام بحثت كثيرا عن طريقه اضافه الداله MID للدوال المدمجة علي السكوال

 

والاداه هيا لاقتصاص عدد معين من السلسه النصيه ونفسها موجوده في الاكسس ولكن غير موجودة في السكوال

 

ياريت الي يقدر يفدني بطريقه اضافتها في الدوال

 

 

 

او استخدام طريقه بديله تأدي نفس الغرض

 

منتظركم

 

 

وشكرا

تم تعديل هذه المشاركة بواسطة عبدالعزيز المخزنجي في 8 أبريل 2013 في 14:04

#3

الدالة Mid غرضها إقتطاع النص؟ استخدم SUBSTRING فتعمل نفس العمل:

SUBSTRING ( expression ,start , length )
  • expression = النص
  • start = البدء من
  • length = طول القطع من بعد start
     

مثال:

SELECT SUBSTRING('ABCD', 1, 1) AS Result;
/**
+---+--------+
|   | Result |
+---+--------+
| 1 | A      |
+---+--------+
**/
SELECT SUBSTRING('ABCD', 1, 2) AS Result;
/**
+---+--------+
|   | Result |
+---+--------+
| 1 | AB     |
+---+--------+
**/
SELECT SUBSTRING('ABCD', 2, 1) AS Result;
/**
+---+--------+
|   | Result |
+---+--------+
| 1 | B      |
+---+--------+
**/

تم تعديل هذه المشاركة بواسطة Mr.B في 8 أبريل 2013 في 15:19

#4 أفضل إجابة

متشكر لردودكم

 

لكن موصلتش لحل

 

ahmad1995 كتب:

السلام عليكم

 

هذا يلي أقدر أفيدك بي

 

http://www.w3schools.com/sql/sql_func_mid.asp

 

هذا الرابط في معلومات عن الذي تريده

 

متشكر لكن مش هو ده الي هيفدني لان ده كتابه الكود انا بتكلم عن ان الداله اصلا مش مضافه عندي في السكوال



Mr.B كتب:

الدالة Mid غرضها إقتطاع النص؟ استخدم SUBSTRING فتعمل نفس العمل:

SUBSTRING ( expression ,start , length )
  • expression = النص
  • start = البدء من
  • length = طول القطع من بعد start
     

مثال:

SELECT SUBSTRING('ABCD', 1, 1) AS Result;
/**
+---+--------+
|   | Result |
+---+--------+
| 1 | A      |
+---+--------+
**/
SELECT SUBSTRING('ABCD', 1, 2) AS Result;
/**
+---+--------+
|   | Result |
+---+--------+
| 1 | AB     |
+---+--------+
**/
SELECT SUBSTRING('ABCD', 2, 1) AS Result;
/**
+---+--------+
|   | Result |
+---+--------+
| 1 | B      |
+---+--------+
**/

حبيبي متشكر لمجهودك بس ده لو قيمه انا هكتبها

 

لكن لو شرط انا عايزه احطه في فيو معين مفتكرش هتنفع 

#5

ياليت أخي لو تكتب بالفصحى كي أفهمك، ماقصدك بآخر جملة؟

 

----

 

هل تقصد شيء مثل؟ (استخدام SUBSTRING في عرض)

SELECT name FROM users;
/**
+---+----------+
|   | name     |
+---+----------+
| 1 | root     |
| 2 | mohammad |
| 3 | khaled   |
| 4 | Zeiad    |
| 5 | saeed    |
| 6 | Ahmed    |
+---+----------+
**/

SELECT SUBSTRING(name, 1, 1) FROM users;
/**
+---+------+
|   | name |
+---+------+
| 1 | r    |
| 2 | m    |
| 3 | k    |
| 4 | Z    |
| 5 | s    |
| 6 | A    |
+---+------+
**/

تم تعديل هذه المشاركة بواسطة Mr.B في 8 أبريل 2013 في 16:39

#6

اخي الكريم

اشكرك علي اهتمامك واعتذر عن استخدامي اللهجه العاميه .
 

ببساطة

الان اقوم بعمل عرض لعلاقة  بين جدولين في احد الفيلدات قيمة معينه مثلا كتاريخ بالصيغه التاليه  01042013
 

ولاسباب اخري يجب ان اقوم بعمل 3 فيلدات لليوم والشهر والتاريخ علي حدا
 


بالنسبه للحقل الاول وهو الخاص باليوم

في الاكسس استخدم الداله

MID (Filed Name ,1,2)

وتعني من حقل التاريخ اقتص رقمين من قيمة الحقل بدايه من الرقم الاول

 

بالنسبه للحقل الثاني وهو الخاص بالشهر

mid (filed name , 3,2)

 

وتعني من قيمة الحقل اقتص رقمين بدايه من الرقم الثالث وبالتالي تكون النتيجة 04

 

وهكذا بالنسبه للعام

mid ( filedname , 5,4) 

وتكون النتيجة 2013

 

المطلوب كيف يمكنني تنفيذ مثل هذي الشروط في العرض علي مايكروسوفت سكوال 2008

 

 

وشكرا لاهتمامك واتمني ان يكون الامر اصبح واضح امامك  

 

#7

حسب فهي أنك تريد عرض السنة في عمود و الشهر في عمود واليوم في عمود آخر؟ يمكنك عمل هذا لكن لابد من تحويل التاريخ لحروف كي تقبله substring، هذا مثال عليه:

IF OBJECT_ID('example') IS NOT NULL DROP TABLE example;

CREATE TABLE example(
    id INT PRIMARY KEY IDENTITY,
    date DATE NOT NULL
);

INSERT INTO example VALUES(CONVERT(DATE, GETDATE()));

SELECT * FROM example;
/**
+----+------------+
| id | date       |
+----+------------+
| 1  | 2013-04-08 |
+----+------------+
**/

SELECT
    SUBSTRING(CONVERT(VARCHAR, date), 1, 4) AS 'Year',
    SUBSTRING(CONVERT(VARCHAR, date), 6, 2) AS 'Month',
    SUBSTRING(CONVERT(VARCHAR, date), 9, 2) AS 'Day'
FROM example;
/**
+----+------+-------+-----+
| id | Year | Month | Day |
+----+------+-------+-----+
| 1  | 2013 | 04    | 08  |
+----+------+-------+-----+
**/
1
#8

السلام عليكم 

قد يفيدك هذا الرابط للاسترجاع باليوم والشهر والسنة فى sql server

 

http://msdn.microsoft.com/en-us/library/ms187813(v=sql.90).aspx

 

طبعا تقدر تغير القيمة الثابتة بمتغير او بحقل عندك وتغير صيغة التارخ عشان مش تقبلك اخطاء 

 

post-223626-0-90455800-1365466146_thumb.

لك الحمدُ ،،، على - مَا مضى . .

وَ لكَ الحمدُ ،،، على مَا أنا ، به الآن . .
وَ لكَ الحمدُ ،،، على - مَا سيأتي . .
وَ لكَ الحمدُ ،،، على كُلِ حال . .
الحمد لله على نعمة الاسلام و كفى بها نعمة

هذا الموضوع مغلق.

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