منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] استخراج الحروف فقط من حقل من نوع varchar20 - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم مقالات SQL SERVER (http://vb4arb.com/vb/forumdisplay.php?fid=84)
+--- الموضوع : [سؤال] استخراج الحروف فقط من حقل من نوع varchar20 (/showthread.php?tid=30959)

الصفحات: 1 2


RE: استخراج الحروف فقط من حقل من نوع varchar20 - سعود - 19-08-19

إقتباس :شكرا جدا كود رائع بس للاسف انا عايز كود سيكوال عايز كويرى يعنى
معلش اسف على ازعاجك
العفو اخي الكريم
اذا تقصد بنفس نص الاستعلام فلا ادري.
الكود بعد العرض على الواجهة.


RE: استخراج الحروف فقط من حقل من نوع varchar20 - mohammed.adry - 21-08-19

(19-08-19, 07:54 AM)سعود كتب :
إقتباس :شكرا جدا كود رائع بس للاسف انا عايز كود سيكوال عايز كويرى يعنى
معلش اسف على ازعاجك
العفو اخي الكريم
اذا تقصد بنفس نص الاستعلام فلا ادري.
الكود بعد العرض على الواجهة.

انا عايز كود من داخل SQL Server Management Studio


RE: استخراج الحروف فقط من حقل من نوع varchar20 - سعود - 21-08-19

إقتباس :انا عايز كود من داخل SQL Server Management Studio
بصراحة ماكنت ادري لهذا كنت اظنك تريد من واجهة فيجوال بيسك.


RE: استخراج الحروف فقط من حقل من نوع varchar20 - viv - 21-08-19

كود :
DECLARE @var varchar(100) = '92;#Alex Smith;#114;#Joe Day;#184;#Johnny Bone'

WHILE (PATINDEX('%[0-9]%', @var) > 0)
BEGIN
   SELECT
   @var = STUFF(@var, PATINDEX('%[0-9]%', @var), 1, '')
END

SELECT REPLACE(REPLACE(@var, ';#;#', ' - '), ';#', '')



كود :
SELECT final.AssignedTo
FROM Tab t
    CROSS APPLY (SELECT REPLACE(t.AssignedTo, '0', '') AS AssignedTo) r0
    CROSS APPLY (SELECT REPLACE(r0.AssignedTo, '1', '') AS AssignedTo) r1
    CROSS APPLY (SELECT REPLACE(r1.AssignedTo, '2', '') AS AssignedTo) r2
    CROSS APPLY (SELECT REPLACE(r2.AssignedTo, '3', '') AS AssignedTo) r3
    CROSS APPLY (SELECT REPLACE(r3.AssignedTo, '4', '') AS AssignedTo) r4
    CROSS APPLY (SELECT REPLACE(r4.AssignedTo, '5', '') AS AssignedTo) r5
    CROSS APPLY (SELECT REPLACE(r5.AssignedTo, '6', '') AS AssignedTo) r6
    CROSS APPLY (SELECT REPLACE(r6.AssignedTo, '7', '') AS AssignedTo) r7
    CROSS APPLY (SELECT REPLACE(r7.AssignedTo, '8', '') AS AssignedTo) r8
    CROSS APPLY (SELECT REPLACE(r8.AssignedTo, '9', '') AS AssignedTo) r9
    CROSS APPLY (SELECT REPLACE(r9.AssignedTo, ';#;#', ' - ') AS AssignedTo) sep
    CROSS APPLY (SELECT REPLACE(sep.AssignedTo, ';#', '') AS AssignedTo) final

أمثلة للاستخدام