【问题标题】:In string 0 to 9 number replace with blank in SQL [duplicate]在 SQL 中将字符串 0 到 9 的数字替换为空白 [重复]
【发布时间】:2014-08-11 23:00:20
【问题描述】:

我有类似字符串

208Pb,
75As,
111Cd

我想用空白和结果重复号码 喜欢

Pb,
AS,
cd 

【问题讨论】:

  • 你有带 2 个尾随字符的字符串吗?
  • NO 它不是 2 char 它的动态
  • @Vignesh Kumar Thnx 很多你的答案是正确的它的工作那么你为什么删除你的答案

标签: sql-server


【解决方案1】:

Source

方法一:

试试这个功能:

Create Function [dbo].[RemoveNonAlphaCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin

    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^a-z]%'
    While PatIndex(@KeepValues, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')

    Return @Temp
End

这样称呼它:

Select dbo.RemoveNonAlphaCharacters('208Pb')

输出:


Pb

方法二:

    DECLARE @str VARCHAR(400)
    DECLARE @expres  VARCHAR(50) = '%[0-9]%'
    SET @str = '208Pb'
    WHILE PATINDEX( @expres, @str ) > 0
      SET @str = Replace(REPLACE( @str, SUBSTRING( @str, PATINDEX( @expres, @str ), 1 ),''),'-',' ')

    SELECT @str

输出:


Pb

【讨论】:

  • 您有足够的代表投票以作为骗子结束而不是复制另一个答案。
  • 是否删除由您决定。但是 IMO 您首先应该考虑将 the original author 归功于 RemoveNonAlphaCharacters 函数。那么您应该考虑一下已经在 SO 上找到答案的事实是否可能使问题成为骗子。
猜你喜欢
  • 1970-01-01
  • 2020-11-19
  • 2014-08-10
  • 2020-03-29
  • 2014-11-12
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多