0

我有一个名为“国家”的表,其中有一列名为“名称”,该列中的名称显示为翻译后跟特殊字符“/”。

IRELAND/IRLANDE
GREECE/GRÈCE
DENMARK/DANEMARK

现在我只想要这个特殊字符'/'之前的国名,所以输出应该是这样的..

IRELAND
GREECE
DENMARK

请帮忙。提前致谢

4

3 回答 3

0

为什么是 LEN(names)-CHARINDEX('/',names)?
尝试改用 CHARINDEX('/',names)+1 。

据我记得,SUBSTRING 的第三个变量应该是所需输出字符串的长度。

于 2014-05-13T09:24:32.863 回答
0
 create table #t(name nvarchar(40))
insert into #t values('IRELAND/IRLANDE')
,('GREECE/GRÈCE')
,('DENMARK/DANEMARK')


select substring(name,0,CHARINDEX('/',name)) from #t
于 2014-05-13T09:28:32.497 回答
0

一个更复杂的查询来帮助你:

DECLARE @Text     VARCHAR(50) = 'IRELAND/IRLANDE GREECE/GRÈCE DENMARK/DANEMARK'
    SELECT
 SUBSTRING(SUBSTRING(@Text,0,CHARINDEX(' ',@Text,0)),0,CHARINDEX('/',@Text,0))
 +  
 SUBSTRING(SUBSTRING(@Text,CHARINDEX(' ',@Text,0),CHARINDEX(' ',@Text,0)),0,CHARINDEX('/',@Text,0))
 + ' '
 +
 REPLACE(REVERSE(SUBSTRING(REVERSE(@Text),CHARINDEX('/',@Text,0) + 1 ,CHARINDEX('/',@Text,0))),'/', ' ')
于 2014-05-13T09:35:46.257 回答