检查字符串是否包含前导字母

10

如何检查字符串是否包含前导字母?在 C# 中很容易,但我正在使用 SQL。有没有办法检查这个问题?如果有,如何去除它?

例如: @MyString = 'A1234'

更新后的字符串 = '1234'

3个回答

20

使用:

UPDATE YOUR_TABLE
   SET your_column = SUBSTRING(your_column, 2, DATALENGTH(your_column))
 WHERE your_column LIKE '[A-Za-z]%'

我认为你应该将 DATALENGTH() 改为 LEN():如果类型是 UNICODE(而且现在广泛使用 NVARCHAR),DATALENGTH() 将会使长度“加倍”。 - onedaywhen

1

对于一个首字母,你可以这样做:

IF NOT ISNUMERIC(SUBSTRING(@MyString, 1, 1))
    SET @MyString = SUBSTRING(@MyString, 2, LEN(@MyString)) 

你可以重复这个过程,直到没有字母为止。


0

如果你想检查,尝试将SUBSTRING包装在IF中...

substring(@MyString,1,1) = 'A'

或者只是

declare @val varchar(10)

set @val = substring(@MyString,1,1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接