Have a look at example:
DECLARE @string VARCHAR(30) = 'rahkkkff'
;WITH CTE AS
(
SELECT 1 AS LetterPosition, CONVERT(VARCHAR(1),LEFT(@string, 1)) AS Letter, RIGHT(@string,LEN(@string)-1) AS Remainder, CHARINDEX(REPLICATE(LEFT(@string, 1),3), @string, 1) AS FoundedAt
WHERE LEN(@string)>1
UNION ALL
SELECT LetterPosition + 1 AS LetterPosition, CONVERT(VARCHAR(1),LEFT(Remainder, 1)) AS Letter, RIGHT(Remainder,LEN(Remainder)-1) AS Remainder, CHARINDEX(REPLICATE(LEFT(Remainder, 1),3), Remainder, 1) AS FoundedAt
FROM CTE
WHERE LEN(Remainder)>1
UNION ALL
SELECT LetterPosition +1 AS LetterPosition, CONVERT(VARCHAR(1),Remainder) AS Letter, NULL AS Remainder, CHARINDEX(REPLICATE(LEFT(Remainder, 1),3), Remainder, 1) AS FoundedAt
FROM CTE
WHERE LEN(Remainder)=1
)
SELECT @string AS MyString, REPLICATE(Letter,3) AS ConsecutiveLetters, LetterPosition AS FoundedAt
FROM CTE
WHERE FoundedAt=1
Result:
rahkkkff kkk 4
Above query is used to check string for 3 consecutive letters,
BUT...
You wrote: "
query for input password whcich does not contatin consecutuive reprating chrcters", which means that you store passwords as a plain text. It's
BAD idea!
Please, see:
http://stackoverflow.com/questions/1054022/best-way-to-store-password-in-database[
^]
Beginners guide to a secure way of storing passwords[
^]