如何在SQL Server中的空白之前获取字符串? ''

时间:2013-12-09 20:55:36

标签: sql-server

可能的输入:

Hello World

La la,la la

Jack Bundy

我想在第一个空字符串''之前进入变量字符串。

'Hello'或'La'或'Jack'。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:4)

最简单(不处理我的评论)是:

SELECT LEFT(@string, CHARINDEX(' ', @string));

您还需要满足字符串不包含空格的情况。一种方法如下,假设@string最多可以包含255个字符:

SELECT LEFT(@string, COALESCE(NULLIF(CHARINDEX(' ', @string), 0), 255));

如果找到空格,这些将留下尾随空格。如果需要,可以通过将整个表达式包装在LTRIM()

中来轻松摆脱它
SELECT LTRIM(LEFT(@string, COALESCE(NULLIF(CHARINDEX(' ', @string), 0), 255)));

或者从找到空格的位置减去一个:

SELECT LEFT(@string, COALESCE(NULLIF(CHARINDEX(' ', @string)-1, -1), 255));

答案 1 :(得分:0)

DECLARE @v AS VARCHAR(MAX) = 'Hello world'
SELECT SUBSTRING(@v, 0, CHARINDEX(' ', @v))