如果我有一个包含字母数字值的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, '')
答案 0 :(得分:1)
如果您要从Alphabets
中删除所有String
,只需在字符串中执行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;