可能的输入:
Hello World
La la,la la
Jack Bundy
我想在第一个空字符串''之前进入变量字符串。
'Hello'或'La'或'Jack'。
我将如何做到这一点?
答案 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))