sql中的substring函数

时间:2016-10-06 02:31:52

标签: sql sql-server-2008

我有一个表格颜色,值是这样的

Color   
D-E   
D-015   
E-0157  
WWW-014     
FER-014     
T-015   

我期待输出像

Color
D-E   
D   
E   
WWW     
FER    
T   

如果我尝试

select substring(color,1,1) from Color

它正在给我

颜色

D    
D   
E   
W   
F   
T   

如何获得预期的输出。

1 个答案:

答案 0 :(得分:1)

您似乎希望将所有内容都添加到第一个连字符(假设'D-E'作为所需结果是拼写错误):

select left(color, charindex('-', color) - 1)

如果您想要安全,以防颜色没有连字符:

select left(color, charindex('-', color + '-') - 1)

如果您确实想要在第一个连字符后面跟一个数字的所有内容,请使用patindex()

select left(color, patindex('%-[0-9]%', color + '-0') - 1)