كيفية العثور على الأحرف الخاصة في سلسلة وانقسام إلى كلمات في SQL Server؟

StackOverflow https://stackoverflow.com/questions/20353627

  •  25-08-2022
  •  | 
  •  

سؤال

لدي سلسلة مثل هذه "Suzuki GSX_1300/Twowheeler"

الآن أريد تقسيم السلسلة أعلاه إلى كلمات وإدخال كلمة واحدة تلو الأخرى في جدول واحد.

DECLARE @a TABLE (a nvarchar(500));
declare @RTADESC nvarchar(100) = 'SUZUKI GSX_1300/TWOWHEELER';
declare @b int =1;
declare @c int;
set @c=CHARINDEX('_',@RTADESC,@b);

WHILE @c>0
        BEGIN
            SELECT @b= CHARINDEX('_' ,@RTADESC,@b)+1
            INSERT INTO @a
            SELECT SUBSTRING(@RTADESC,0,@b-1)
            set @c=CHARINDEX('_',@RTADESC,@b)
        END

        SELECT * FROM @a

الآن أريد أن أرى البيانات الموجودة في الجدول على النحو التالي

SUZUKI
GSX
1300
TWOWHEELER

بناءً على ذلك ، سأبحث عن صانعي المركبات في طاولتي.

لذا ، الرجاء المساعدة في هذا كيف يمكنني تقسيم سلسلةي ، قد أحصل على شخصيات خاصة مختلفة في المستقبل.

هل كانت مفيدة؟

المحلول

هناك بعض الخيارات الممتازة المتاحة على: http://www.sqlperformance.com/2012/07/t-sql-queries/split-trings

هناك حلول تسمح لك بتمرير المحدد أيضًا ، حتى تتمكن من المرور في مختلف الحالات في المستقبل.

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