Не удается обновить статус для соответствия символам в случае, если значение ключа подписи равно звездам?
Я работаю на SQL server 2012 и сталкиваюсь с проблемой : я не могу обновить статус, чтобы соответствовать символам, где ключ подписи имеет звезды * .
Мне нужно обновить статус, чтобы соответствовать символам, где начинается ключ подписи, например
Signature Key Group Id Portion Key Status *$*$**s$***$**$**$* 3 12s Match Characters
идентификатор группы 3 из ключа подписи выше-это **s, который должен равняться ключу части 12s, поэтому статус должен совпадать с символами .
но если значение идентификатора группы равно **f, а значение ключа части равно 15g, то оно будет не соответствовать статусу символа
потому что g не равно f.
Create table #Ref ( SignatureKey nvarchar(50), GroupId int, PortionKey nvarchar(50), Status nvarchar(100) ) insert into #Ref(SignatureKey,GroupId,PortionKey,status) values ('*$*$C$***$**$**$*',3,'s',NUll), ('*$*$*$FG$*$**$*',4,'F',NUll), ('*$*$*$***$*$D$*',6,'D',NUll), ('*$t**$*$***$***$**$*',2,'t12',NUll), ('*$**$*$***$**t$**$*',5,'12t',NUll)
ожидаемый результат :
Signature Key Group Id Portion Key Status *$*$C$***$**$**$* 3 s Not Match Characters *$*$*$FG$*$**$* 4 F Not Match Characters *$*$*$***$*$D$* 6 D Not Match Characters *$t**$*$***$***$**$* 2 t12 Match Characters *$**$*$***$**t$**$* 5 12t Match Characters
то, что мне нужно сказать, - это статус с символами be Match в случае значения ключа подписи, равного ключу части
точно так же, как (c = c) или ключ подписи имеют звезды на идентификаторе группы, поэтому я буду игнорировать starts * и сравнивать
символ с символом as (*f = 1f) означает, что если у меня есть звезды, то игнорируйте сравнение с символом.
Что я уже пробовал:
update r set r.Status='Not Match Charachters' from #Ref r cross apply dbo.Split(r.SignatureKey,'$') f where CAST (r.GroupId AS INT) = f.Id and r.PortionKey <> f.Data
Maciej Los
Что такое тело dbo.Функция разделения?
ahmed_sa
dbo.split встроены в функцию
Richard Deeming
Нет, это не так. Встроенная функция-это STRING_SPLIT (Transact-SQL) - SQL Server | Microsoft Docs[^], который был добавлен в SQL Server 2016.
Maciej Los
:большой палец вверх:
ahmed_sa
извините функция существует на
dbo.split функция существует на
https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648