我有一个名为 Name 的列,在该列中我有值

Name
001 BASI Distributor (EXAM)
002 BASI Supplier (EXAM2)
MASI DISTRIBUTOR (EXAM002)
MASI SUPPLIER (EXAM003)
EXAM_ND Distributor Success System Test (EXAM_ND)
EXAM_SS Supplier Success System Test (EXAM_SS)

现在我想将 () 中的值与整个字符串分开。我将如何得到这个我尝试过 SUBSTRING (Name ,22 ,4 ) 但这将有助于我想使用一些独特的解决方案获得结果。

最佳答案

试试这个——

DECLARE @temp TABLE (st NVARCHAR(50))

INSERT INTO @temp (st)
VALUES
     ('001 BASI Distributor (EXAM)'),
     ('002 BASI Supplier (EXAM2)'),
     ('MASI DISTRIBUTOR (EXAM002)'),
     ('MASI SUPPLIER (EXAM003)'),
     ('EXAM_ND Distributor Success System Test (EXAM_ND)'),
     ('EXAM_SS Supplier Success System Test (EXAM_SS)')

SELECT SUBSTRING(
     st,
     CHARINDEX('(', st) + 1,
     CHARINDEX(')', st) - CHARINDEX('(', st) - 1
)
FROM @temp

输出 -
-------------
EXAM
EXAM2
EXAM002
EXAM003
EXAM_ND
EXAM_SS

关于sql - 从 SQL Server 表中的 varchar 列获取子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17611351/

10-11 02:52