如何检查字符串是否包含前导字母?在 C# 中很容易,但我正在使用 SQL。有没有办法检查这个问题?如果有,如何去除它?
例如: @MyString = 'A1234'
更新后的字符串 = '1234'
如何检查字符串是否包含前导字母?在 C# 中很容易,但我正在使用 SQL。有没有办法检查这个问题?如果有,如何去除它?
例如: @MyString = 'A1234'
更新后的字符串 = '1234'
使用:
UPDATE YOUR_TABLE
SET your_column = SUBSTRING(your_column, 2, DATALENGTH(your_column))
WHERE your_column LIKE '[A-Za-z]%'
对于一个首字母,你可以这样做:
IF NOT ISNUMERIC(SUBSTRING(@MyString, 1, 1))
SET @MyString = SUBSTRING(@MyString, 2, LEN(@MyString))
你可以重复这个过程,直到没有字母为止。
如果你想检查,尝试将SUBSTRING包装在IF中...
substring(@MyString,1,1) = 'A'
或者只是
declare @val varchar(10)
set @val = substring(@MyString,1,1)
DATALENGTH()
改为LEN()
:如果类型是 UNICODE(而且现在广泛使用NVARCHAR
),DATALENGTH()
将会使长度“加倍”。 - onedaywhen