SQL:获取短划线字符之前的子字符串。从"ABC-123"到"ABC"



我有一个带有字段(列(ID和AREA_DESC的表ARM。

在AREA_DESC字段中,我有一些值显示如下:

AREA_DESC
--------------
Felisberto-001
Ana
Mark-02
Maria
--------------

我想做的是以这种方式显示这些值:

AREA_DESC
--------------
Felisberto
Ana
Mark
Maria
--------------

您可能注意到,我只想在破折号-之前显示字符串。换句话说,我想在破折号-之后删除破折号-和数字

这是我到目前为止尝试过的查询:

SELECT ID, AREA_DESC ,SUBSTRING(AREA_DESC,0,CHARINDEX('-', AREA_DESC)) as area 
FROM CARM

最简单的方法是为charindex()添加一个'-'

SELECT ID, AREA_DESC,
       LEFT(AREA_DESC, CHARINDEX('-', AREA_DESC + '-')) as area
FROM CARM;

请注意,这也使用LEFT()它在字符串操作中保存参数。

您可以使用

left(),并在字符串末尾添加'-'

select ID, AREA_DESC, left(AREA_DESC, charindex('-', AREA_DESC + '-'))
from CARM;

相关内容

最新更新