从select statment中的列中删除短划线而不更改表数据

时间:2015-09-24 21:55:04

标签: sql sql-server sql-server-2008

我有一个查询,可以获取一份“工作号码”列表'从一张桌子。但是,作业编号会在中间显示带有短划线的数字。(e.g. 645-123)

如何选择此字段并仅检索短划线(e.g.'645')而不是'-123'

我不希望表中的数据被替换为'或编辑;我只需要选择数据但没有破折号和短划线后的剩余数字。

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

select (case when jobnum like '%-%'
             then left(jobnum, charindex('-', jobnum) - 1)
             else jobnum
        end)

如果没有连字符(case的原因),则不会返回错误。