如何在SQL Server中删除破折号( - )之前取出所有内容?

时间:2014-05-02 11:31:40

标签: sql-server

我想提取一行的某个部分。如果有这样的东西......" abcd - productA"," zas1234 - productC",如何在破折号( - )之前提取所有内容?

我尝试了左(列名,' - ')它没有用。我在SQL Server 2012上。

我尝试提取的列是varchar列。

如果有人可以帮助我,那就太棒了。

2 个答案:

答案 0 :(得分:1)

试试这个,

select SUBSTRING(column_name, 1, CHARINDEX('-', column_name)-1) from table_name;

答案 1 :(得分:0)

DECLARE @varStr VARCHAR(MAX) SET @ varStr ='abcd - productA'

SELECT CHARINDEX(' - ',@ varStr)

SELECT LEFT(@ varStr,CHARINDEX(' - ',@ varStr)-1)