اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

التحديد بين الأرقام والحروف


سعد

الردود الموصى بها

السلام عيكم ورحمة الله وبركاته ،،،

لدي عمود داخل جدول به بيانات كثيره بعض الخلايا تحتوي على أرقام فقط وبعض الخلايا تحتوي على حروف فقط وبعض الخلايا تحتوي على الأرقام والحروف ولقد حاولت فصلها ولم أتمكن بإستخدام الأمر التالي

"SELECT Query4.ProductCode, Query4.[Product Name], Query4.Categories, Query4.Description, Query4.Unit, Query4.Location, Query4.StockNumber, Query4.SapNumber FROM Query4 WHERE Query4.SapNumber like  ""*" & Text22 & "*"" ;"

حيث كان لزاما علي كتابة حرف ما ليتم الفصل لكن إذا كان هذا الحرف غير موجود في خليه أخرى بها حروف أيضا فإنه يفصل الخلايا التي تحوي الحرف المحدد ، ولكني أريد فصل جميع الخلايا التي تحوي حروف وجميع الخلايا التي تحوي أرقام وجميع الخلايا التي تحوي حروف وأرقام معاً .

شكراً مسبقا لكل من يقدم المساعده

تحياتي سعد

رابط هذا التعليق
شارك

أضف دالة الي ال

user Defined functions

فى قاعدة البيانات علي خادم ال SQL

الدالة التالية :

CREATE FUNCTION [dbo].[fncTT] (@s as CHAR)  
RETURNS CHAR(20)
AS BEGIN DECLARE @ttt CHAR(20)

IF isnumeric(@s)= 1 AND PATINDEX('%[A-Z]%',@s)=0 
    SELECT  @ttt = 'All Number'
ELSE
       SELECT  @ttt = 'NOT All Number'


RETURN @ttt

END
و تستخدم هذه الدالة فى الاستعلام لاستنتاج التقييم نوع للبيانات المخزنة فى الحقل المقصود اختباره فتعطي ناتج يوضح هل الحقل لامراد اختباره به رقم أم نص مثلا اذا كان الحقل اسمه CategoryName و الجدول اسمه Cat2
SELECT     CategoryID, CategoryName, dbo.fncTT(CategoryName) AS checkmytext
FROM dbo.Cat2
ثم تضع المعيار علي القيمة المستنتجة مثلا
SELECT     CategoryID, CategoryName, dbo.fncTT(CategoryName) AS checkmytext
FROM dbo.Cat2 WHERE (dbo.fncTT(CategoryName) = 'All Number')

رابط هذا التعليق
شارك

(y)

الداله تعمل جيدا وهذا تعديل فى أسماء الحقول لتعمل مع ال North Wind Database

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

ALTER FUNCTION [dbo].[fncTT] (@s as CHAR) 
RETURNS CHAR(20)
AS BEGIN DECLARE @ttt CHAR(20)

IF isnumeric(@s)= 1 AND PATINDEX('%[A-Z]%',@s)=0 
SELECT @ttt = 'All Number'
ELSE
SELECT @ttt = 'NOT All Number'


RETURN @ttt

END


GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
ولاستدعاء الداله
SELECT CategoryID,CategoryName, dbo.fncTT(CategoryName) AS checkmytext
FROM dbo.Categories
WHERE (dbo.fncTT(CategoryName) = 'All Number')

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information