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;
如果我有一个包含字母数字值的 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;