41

我正在尝试从字符串中提取子字符串(在这种情况下,连字符之前的所有内容),如下所示:

Net Operating Loss - 2007
Capital Loss - 1991
Foreign Tax Credit - 1997

并想要分别使用 SQL Server Management Studio 2008 的年份和名称(连字符前的子字符串)。有什么建议吗?或想法我怎么能做到这一点?

4

3 回答 3

77
DECLARE @test nvarchar(100)

SET @test = 'Foreign Tax Credit - 1997'

SELECT @test, left(@test, charindex('-', @test) - 2) AS LeftString,
    right(@test, len(@test) - charindex('-', @test) - 1)  AS RightString
于 2012-07-25T13:46:23.707 回答
6
DECLARE @dd VARCHAR(200) = 'Net Operating Loss - 2007';

SELECT SUBSTRING(@dd, 1, CHARINDEX('-', @dd) -1) F1,
       SUBSTRING(@dd, CHARINDEX('-', @dd) +1, LEN(@dd)) F2
于 2012-07-25T15:04:13.817 回答
0

这可以使用两个 SQL 函数来实现 - SUBSTRING 和 CHARINDEX

您可以将字符串读取到变量中,如上述答案所示,也可以将其添加到 SELECT 语句中,如下所示:

SELECT SUBSTRING('Net Operating Loss - 2007' ,0, CHARINDEX('-','Net Operating Loss - 2007'))
于 2021-02-16T05:36:21.453 回答