SQL 服务器 - 删除字符串中的所有字母

SQL Server- Remove ALL letters in a String

如果我有一个包含字母数字值的 VARCHAR 列。请问如何只删除字母并保留所有其他字符?这不是重复项(至少我认为不是),因为我想保留所有特殊字符和数字,但只删除字母。

    Input       Desired Result
    123         123
    123S        123
    A123,123    123,123
    a123..A123  123..123

我尝试使用以下方法,但没有得到想要的输出..

DECLARE @textval NVARCHAR(30)
SET @textval = 'S123..S123'

SELECT LEFT(SUBSTRING(@textval, PATINDEX('%[0-9.-]%', @textval), 8000),
           PATINDEX('%[^0-9.-]%', SUBSTRING(@textval, PATINDEX('%[0-9.-]%', @textval), 8000) + 'X') -1)

SELECT     STUFF(@textval, 1, PATINDEX('%[0-9]%', @textval)-1, '')

如果你想从你的 String 中删除所有 Alphabets 只需通过你的字符串中的 loop 即可。

DECLARE @str NVARCHAR(MAX);
DECLARE @lpcounter INT;
SET @str = 'A123..Z123';
SET @lpcounter = 0;
WHILE @lpcounter <= 26
    BEGIN
        SET @str = REPLACE(@str, CHAR(65+@lpcounter), '');
        SET @lpcounter  = @lpcounter + 1;
    END;
SELECT @str;