选择一个空间的数据?

Sky*_*ell 33 t-sql sql-server

我有一个MSSQL数据库字段,如下例所示:

u129  james
u300  chris
u300a jim
u202  jane
u5    brian
u5z   brian2
Run Code Online (Sandbox Code Playgroud)

有没有办法选择第一组字符?基本上选择所有字符直到第一行空间?

我尝试使用LEFT,RIGHT,LEN来解决这个问题,但是在我的例子中,我无法找到一种方法来处理变量字符串长度.

谢谢!

Lit*_*les 83

您可以使用的combiation LEFTCHARINDEX找到第一个空间的索引,然后抓住一切的是左边.

 SELECT LEFT(YourColumn, charindex(' ', YourColumn) - 1) 
Run Code Online (Sandbox Code Playgroud)

如果您的任何列中没有空格:

SELECT LEFT(YourColumn, CASE WHEN charindex(' ', YourColumn) = 0 THEN 
    LEN(YourColumn) ELSE charindex(' ', YourColumn) - 1 END)
Run Code Online (Sandbox Code Playgroud)

  • @Beth - 请小心编辑,你把我答案的一半消灭了.建议我添加一个参考链接会更有帮助. (2认同)
  • 很好的解释,但您却一口气-这也抓住了空间。 (2认同)