eek*_*142 2 sql sql-server string sql-server-2008
我有一堆像这样的字符串:
'ABCD99991000'
'XYZ79991000'
'E2493991039'
Run Code Online (Sandbox Code Playgroud)
我真正关心的是最后8个字符之前的所有内容.问题是我在字符串开头处理的字符长度可变.在上面的例子中,我想要返回的是:
'ABCD'
'XYZ'
'E24'
Run Code Online (Sandbox Code Playgroud)
如果我能让它在结果之前返回所有内容,那么RIGHT()函数将是完美的.例如,RIGHT(E2499991039,8)返回我不想要的数字!如何在查询中的最后8个字符之前返回可变长度强度?
SQL Server 2008
Irf*_*rfy 15
看到 SUBSTRING
select substring(column_name, 1, len(column_name)-8)
from table_name
Run Code Online (Sandbox Code Playgroud)
declare @str varchar(50)
set @str = 'ABCD99991000'
select LEFT(@str, len(@str) - 8)
Run Code Online (Sandbox Code Playgroud)
(没有错误检查Len(@str)<8)
所以,
select LEFT(colname, LEN(colname) - 8)
from table_name
Run Code Online (Sandbox Code Playgroud)