首页 > 解决方案 > 如何在 sql server 中分隔字符串、特殊符号和整数?x

问题描述

这是问题 kumarpavanprashanth@@@123679

我试过这个

DECLARE @MyString varchar(1000) = 'kumarpavanprashanth@@@123679';

declare @Counter integer = 1;

declare @currChar char(1) = '';;

declare @charString varchar(1000) = '';

declare @intString varchar(1000) = '';



while (@Counter <= len(@MyString))
begin

 set @currChar = substring(@MyString,@Counter,1)
   
if isNumeric(@currChar) = 1
 set @intString = @intString + @currChar
   else
       set @charString = @charString + @currChar

  set @counter = @counter + 1
end

select @charString;
select cast(@intString as integer)

预期输出:

在第一列中应该有 kumar,pavan,prashanth

在第二列中应该有@,@,@

在第三列中应该有 1,2,3,6,7,9

标签: sql-server

解决方案


如果您可以定义不同于所有输出类型的字符串。您可以使用以下查询:您必须使用 SQL 2016

从 STRING_SPLIT 中选择值('kumar,pavan,prashanth/@,@,@/1,2,3,6,7,9', '/')


推荐阅读