НРАВИТСЯ операторский номер "Маха, Дели" - PullRequest
0 голосов
/ 02 декабря 2011
Declare @PackageID varchar(50)
Declare @state varchar(50)
set @PackageID='2,4,5'
set @state='delhi,maha'

    select DetailsID,Industry,StateID from DetailsMaster 
    where ((Industry IN (SELECT * from fnList2Table (@PackageID)))
    or 
    ((StateID like '%' +(SELECT top 1  [s] from dbo.Split(',', @state)) + '%') 
    ))


Union

select DetailsID,Industry,StateID from DetailsMaster 
where ((Industry IN (SELECT * from fnList2Table (@PackageID)))
or 
((StateID like '%' +(SELECT top 1  [s] from dbo.Split(',', Reverse(@state))) + '%') 
))

Приведенный выше запрос не является результатом получения состояния kk,maha.Получит результат maha,kk.

1 Ответ

3 голосов
/ 02 декабря 2011

Похоже, ваш Reverse(@state) не переключается delhi,maha на maha,delhi.

То, что Реверс на самом деле делает, это delhi,maha в aham,ihled.

.

Вы можете попробовать вырезать строку самостоятельно с помощью substr_index , а затем собрать ее в обратном порядке с помощью concat_ws :

CONCAT_WS(',', SUBSTRING_INDEX(@state,',',-1), SUBSTRING_INDEX(@state,',',1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...