جستجوی الگوی خاص در دستور Like
سلام
فرض کنید متغیرهای زیر را تعریف کرده ایم
declare @test1 varchar(100)='abcd'
declare @test2 varchar(100)='abcdweabcd'
declare @test3 varchar(100)='abcdabcd'
declare @test4 varchar(100)='abcddabcdabcd'
declare @test5 varchar(100)='abcdabcdabcdabcdabcdabcdabcdabcd'
declare @test6 varchar(100)='abcd1'
declare @test7 varchar(100)='abcdabcdabcdabcdab'
declare @test8 varchar(100)='aabcd'
declare @test9 varchar(100)='abcddabcdabcd2'
declare @test10 varchar(100)='acbd'
declare @test11 varchar(100)='dcba'
declare @test12 varchar(100)='adbcd'
حال می خواهم دستور like را طوری بنویسم
که الگوی abcd حتما راعایت شده باشد
یعنی ترتیب آنها همان abcd باشد و حال چه 1 بار یا 100بار تعریف شده باشد
باتوجه به متغریهای بالا
یعنی
@test1,@test3,@test4,@test5
صحیح باشند و مابقی ناصحیح
نقل قول: جستجوی الگوی خاص در دستور Like
سلام
از دوستان کسی نیست راهنمای کند
باتشکر
نقل قول: جستجوی الگوی خاص در دستور Like
حتما با LIKE ؟
یه راه حل دیگه:
یه تابع هست به نام replace میتونید رشته موردنظر رو به عنوان پارامتر اول بدید. رشته abcd رو پارامتر دو. رشته تهی رو پارامتر سوم.
ظاهرا تابع میاد از ابتدا رشته شروع میکنه هرچی زیر رشته به شکل abcd هست رو با تهی جایگزین میکنه و در نهایت رشته تغییریافته رو برمیگردونه
بعد خروجی تابع رو پارامترتابع datalength قرار میدی که طول رشته ورودی رو برمیگردونه
در نهایت اگه طول رشته مساوی با صفر بود یعنی اون رشته ی مورد نظر است.
DECLARE @pattern VARCHAR(MAX)= 'abcd'
DECLARE @string1 VARCHAR(MAX)= 'abcdabcdabcd'
DECLARE @string2 VARCHAR(MAX)= 'abcdabcdabcda'
SELECT DATALENGTH(REPLACE(@string2, @pattern, ''))