gpt4 book ai didi

sql - 如何从两个符号之间的字符串中获取子字符串

转载 作者:行者123 更新时间:2023-12-04 22:04:00 24 4
gpt4 key购买 nike

我想获取子字符串在 =,

等两个运算符之间

我尝试了类似 CHARINDEXLEFT 的方法来获取值,但我得到的输出是CN=Khushwant Khatri但我的输出应该只是 Khushwant Khatri

SELECT left([String_value],CHARINDEX(',',([String_value]),0)-1) from trim_string

我的字符串看起来像

CN=Khushwant Khatri,OU=TestMig,DC=valjha,DC=vedantaresource,DC=local

CN=Raghav Tare,OU=EXECUTIVE,OU=EXUDR,DC=HZL01,DC=vedantaresource,DC=local

CN=D K Chodankar,OU=Users,OU=AD LotusSync,DC=SGL01,DC=vedantaresource,DC=local

如你所见,字符串长度可变

我只想要 CN 值,我的输出应该是这样的库什万·卡特里拉加夫皮重D K 乔丹卡

最佳答案

你可以试试这个。首先你需要找到你的第一个 = 的位置,因为 name 将从那里开始,然后需要找到你的名字的长度,它由 , 分隔。所以我们找到下一个 , 的索引,并从字符串的长度中减去它直到 =。剩下的字符串就是你预期的名字。

我正在考虑您的第一个值“CN=”可能会因某些情况而有所不同。

declare @str varchar(max) = 'CN=Khushwant Khatri,OU=TestMig,DC=valjha,DC=vedantaresource,DC=local'

select substring( @str, charindex('=',@str)+1, (charindex(',',@str) - (charindex('=',@str) +1) ))

根据给定的表结构详细信息,请找到以下代码片段。


Create table trim_string ( string_value nvarchar(max) )

Insert into trim_string ( string_value )
values ( 'CN=Khushwant Khatri,OU=TestMig,DC=valjha,DC=vedantaresource,DC=local' )
, ( 'CN=Raghav Tare,OU=EXECUTIVE,OU=EXUDR,DC=HZL01,DC=vedantaresource,DC=local' )
, ( 'CN=D K Chodankar,OU=Users,OU=AD LotusSync,DC=SGL01,DC=vedantaresource,DC=local' )

----- this is your query section
; with cte as (
select string_value , substring( string_value, charindex('=',string_value)+1, (charindex(',',string_value) - (charindex('=',string_value) +1) )) newvalue
from trim_string )
---- you may store them in temptable
select * into #temp from cte
----or
---- for selection
select * from cte
----or
----- use to update
update cte set string_value = newvalue

select * from trim_string

根据评论讨论,请试试这个。

; with cte as (
select string_value , substring( string_value, charindex('=',string_value)+1, (charindex(',',string_value) - (charindex('=',string_value) +1) )) newvalue
from trim_string )
select * from cte

这应该为您提供表的所有字符串记录,其中名称在新列中作为 newvalue 获取。

关于sql - 如何从两个符号之间的字符串中获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57735563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com