سؤال

أتساءل عما إذا كانت هناك طريقة سهلة وفعالة في SQL Server 2005 للتخلص من الأحرف المتكررة في سلسلة. مثل التحويل

'ABBBCDEEFFFFG' to 'ABCDEFG'

إنه لأمر تمتص حقًا أن SQL Server يحتوي على مكتبة سلسلة سيئة ولا توجد ميزة RegexP جاهزة للاستخدام ...

لا يوجد حل صحيح

نصائح أخرى

يمكنك استخدام وظيفة CLR المضمنة في SQL Server 2005/2008 لإنجاز ذلك بواسطة رمز .NET.

كتبت مجلة MSDN عن ذلك في فبراير 2007 القضية.

إذا لم يكن هذا حلاً مقبولًا ، هنا هو UDF الذي سيفعل الشيء نفسه ، ضع في اعتبارك أن هذا يدور حول طلبين أبطأ من محلول CLR.

ymmv. يبدو أن هذا يعمل لسلسلةك أعلاه. لكن لا ABBBCDEEBBBBG

DECLARE @Numbers TABLE (Num smallint NOT NULL PRIMARY KEY)

INSERT @Numbers (Num)
SELECT TOP 8000
    ROW_NUMBER() OVER (ORDER BY c1.NAME)
FROM
    sys.columns c1

DECLARE @STuff TABLE (Seq varchar(100) NOT NULL PRIMARY KEY)

INSERT @STuff (Seq) VALUES ('ABBBCDEEFFFFG') --works

SELECT
    Single
FROM
    (
    SELECT DISTINCT
        CAST(Single AS varchar(100))
    FROM
       @Numbers N
       CROSS APPLY 
       (SELECT Seq, SUBSTRING(Seq, Num, 1) AS Single FROM @Stuff) S
    WHERE
       Num <= LEN(Seq)
    FOR XML PATH ('')
    ) foo(Single)

SharePoint داخليا يخزن تواريخ بتنسيق UTC. أعتقد أن مشكلتك يمكن أن تكون مرتبطة بهذا:

طريقة GetFieldValueastExt تتطلب هذا التاريخ والوقت تكون في تنسيق UTC، في حين أن معظم أساليب مؤسسة SharePoint للعودة قائمة قائمة إرجاع القيم في الوقت المحلي.وبالتالي، متى إجراء استعلامات لبيانات القائمة، تحتاج إلى تحويل قيم الوقت إلى الحصول على النتائج المتوقعة.لإرجاع العناصر في تاريخ ووقت UTC، استخدم كائن SPQuery وقم بتعيين خاصية Desesinutc إلى True giveacodicetagpre.

شاهد المزيد هنا: http://msdn.microsoft.com/arالولايات المتحدة / المكتبة / MS442266.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top