SQL:如何拉取第一个space之前的字符

SQL: how to pull characters before the first space

对于不是 NULL 的字段,如何在第一个 space 之前提取字符?

例如:

Banana Bread
NULL
Chocolate Chip Cookie

结果:

Banana
NULL
Chocolate

谢谢!

通过阅读 documentation of the netezza string functions,我相信您应该能够通过使用函数 instr()substr() 来实现这一点,例如:

substr(
    my_column, 
    1,
    instr(my_column, ' ') - 1
)

基本上,instr(my_column, ' ') 给出字符串中第一个 space 的位置;从中减去 1,您将得到要在字符串开头捕获的字符数。

如果给定一个 NULL 值,这个表达式也应该 return NULL

在 MS SQL 服务器上:

select 
 Snack
,charindex(' ', Snack) SpaceLocation
,substring(Snack, 1, charindex(' ', Snack)-1) SubString
from (
    values
     ('Banana Bread')
    ,(NULL)
    ,('Chocolate Chip Cookie')
) t(Snack)

select substring(FieldName, 1, charindex(' ',FieldName)) 其中 FieldName 不为空