CREATE FUNCTION dbo.[udf_CountNumericCharacters](@strText VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
WHILE PATINDEX('%[^0-9]%', @strText) > 0
BEGIN
SET @strText = STUFF(@strText, PATINDEX('%[^0-9]%', @strText), 1, '')
END
RETURN LEN(@strText)
END
-- Greater than one
SELECT *
FROM Test
WHERE dbo.[udf_CountNumericCharacters]([Name]) > 1
-- Greater than three
SELECT *
FROM Test
WHERE dbo.[udf_CountNumericCharacters]([Name]) > 3
-- Exactly 5
SELECT *
FROM Test
WHERE dbo.[udf_CountNumericCharacters]([Name]) = 5
すばやく検索すると、これらの結果を印刷するさまざまな方法が得られます。