我正在尝试从字符串中提取子字符串(在这种情况下,连字符之前的所有内容),如下所示:
Net Operating Loss - 2007
Capital Loss - 1991
Foreign Tax Credit - 1997
并想要分别使用 SQL Server Management Studio 2008 的年份和名称(连字符前的子字符串)。有什么建议吗?或想法我怎么能做到这一点?
我正在尝试从字符串中提取子字符串(在这种情况下,连字符之前的所有内容),如下所示:
Net Operating Loss - 2007
Capital Loss - 1991
Foreign Tax Credit - 1997
并想要分别使用 SQL Server Management Studio 2008 的年份和名称(连字符前的子字符串)。有什么建议吗?或想法我怎么能做到这一点?
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
DECLARE @dd VARCHAR(200) = 'Net Operating Loss - 2007';
SELECT SUBSTRING(@dd, 1, CHARINDEX('-', @dd) -1) F1,
SUBSTRING(@dd, CHARINDEX('-', @dd) +1, LEN(@dd)) F2
这可以使用两个 SQL 函数来实现 - SUBSTRING 和 CHARINDEX
您可以将字符串读取到变量中,如上述答案所示,也可以将其添加到 SELECT 语句中,如下所示:
SELECT SUBSTRING('Net Operating Loss - 2007' ,0, CHARINDEX('-','Net Operating Loss - 2007'))