2011-12-02 90 views
0
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的結果。LIKE運營商問題'maha,delhi'

回答

3

看起來你的Reverse(@state)沒有切換delhi,mahamaha,delhi

Reverse實際上做的是將delhi,maha轉換爲aham,ihled

你可以嘗試自己切割字符串substr_index,然後用concat_ws重新組裝以相反:

CONCAT_WS(',', SUBSTRING_INDEX(@state,',',-1), SUBSTRING_INDEX(@state,',',1)) 
+0

u能temme熱做 –

+0

樂施會那麼如何解決呢?任何建議 –

+0

那麼解決方案是什麼? –