如果找不到空格,如何返回字符串

l--*_*''' 1 sql sql-server sql-server-2008

我需要在空格之前返回字符串中的所有内容:

select Substring('stack overflow', 1, CharIndex( ' ', 'stack overflow' ) - 1)
Run Code Online (Sandbox Code Playgroud)

这会产生 stack

但是如果我们在数据中没有空格,我想返回整个字符串:

select Substring('stackoverflow', 1, CharIndex( ' ', 'stackoverflow' ) - 1)
Run Code Online (Sandbox Code Playgroud)

我想要回来 stackoverflow

处理这种情况的正确方法是什么?

Mar*_*ith 5

;WITH T(C) AS
(
SELECT 'stack overflow' UNION ALL
SELECT 'stackoverflow'
)
SELECT LEFT(C, CharIndex( ' ', C + ' ' ) - 1)
FROM T
Run Code Online (Sandbox Code Playgroud)