我需要一个“替换”选择查询,在字符串后删除除3个字符以外的所有内容。
示例:
Data = "CN=GOT002086,OU=LAPTOPS,OU=COMPUTERS,OU=GOT,DC=CORP,DC=GDS,DC=COMPANYNAME,DC=COM"
我需要将此字段的输出替换为仅显示“GOT”。我想我可以在列中键入“COMPUTERS”这个词,如果可能的话,在“COMPUTERS”之后只选择3个字符4个空格。此列是完全限定的计算机名称,我只希望显示OU。
答案 0 :(得分:0)
试试这个。
DECLARE @TestString VARCHAR(1000)
SET @TestString = 'CN=GOT002086,OU=LAPTOPS,OU=COMPUTERS,OU=GOT,DC=CORP,DC=GDS,DC=COMPANYNAME,DC=COM'
SELECT SUBSTRING(@TestString, CHARINDEX('COMPUTERS,', @TestString ,0)+13,3)
CREATE TABLE ActualValuesTable (ValueColumn VARCHAR(250))
INSERT INTO ActualValuesTable VALUES('CN=GOT002086,OU=LAPTOPS,OU=COMPUTERS,OU=GOT,DC=CORP,DC=GDS,DC=COMPANYNAME,DC=COM')
INSERT INTO ActualValuesTable VALUES('CN=GOT002086,OU=LAPTOPS,OU=COMPUTERS,OU=123,DC=CORP,DC=GDS,DC=COMPANYNAME,DC=COM')
INSERT INTO ActualValuesTable VALUES('SomeText..OU=COMPUTERS,OU=789,SomeText..')
INSERT INTO ActualValuesTable VALUES('SomeText..OU=COMPUTERS,OU=012,SomeText..')
INSERT INTO ActualValuesTable VALUES('SomeText..OU=COMPUTERS,OU=234,SomeText..')
INSERT INTO ActualValuesTable VALUES('SomeText..OU=COMPUTERS,OU=456,SomeText..')
SELECT SUBSTRING(ValueColumn, CHARINDEX('COMPUTERS,', ValueColumn ,0)+13,3) FROM ActualValuesTable