想要仅在空格之前的字母生成计算列规范

时间:2018-10-24 13:49:35

标签: sql sql-server

我想生成一个计算列规范,该规范将捕获空格之前的字母。

例如我有这些代码

“ FY120 FMC”我希望它是“ FY120”

谢谢

3 个答案:

答案 0 :(得分:4)

如果您要将此声明设为select,则可以执行以下操作:

select t.*, left(col, charindex(' ', col + ' ')-1)
from table t;

编辑:如果您希望将此作为表列,则使用alter语句:

alter table table
    add col as left(col, charindex(' ', col + ' ')-1) 

答案 1 :(得分:1)

尝试一下

DECLARE @data nvarchar(100)='FY120 FMC'

SELECT @data, SUBSTRING(@data,1,CHARINDEX(' ',@data)) AS ReqFormat

结果

data        ReqFormat
---------------------
FY120 FMC     FY120 

答案 2 :(得分:0)

您的计算列规范应为

case when charindex(' ', col) > 0 then substring(col, 1, charindex(' ', dg_reference)) else col end

因此请按照规范更改表格

alter table yourtable
    add col as case when charindex(' ', col) > 0 then substring(col, 1, charindex(' ', dg_reference)) else col end 

这可以满足没有空间的情况 希望对您有帮助