簡體   English   中英

如何比較兩個不同的逗號分隔的字符串值,以及如何檢查第一個中是否存在不同逗號分隔的字符串中的任何值

[英]How to compare two different comma separated string values and check if ANY of the values from a different comma separated string exists in the first

我希望我能解釋清楚。 如果不清楚,請詢問

我有一個查詢來檢索用戶的數據,該用戶可以訪問某些實體。

基本上,在我的用戶表中有一列,用戶可以在其中擁有一個或多個逗號分隔的整數。 以下是一些示例:

表格1

User #1 value: ,1,
User #2 value: ,1,3,5,12,
User #3 value: ,12,
User #4 value: ,14,3,5, 
User #5 value: ,14, 

我的秒表有一個非常相似的字段。 如果我在第二張表中有一條類似於以下的記錄:

表#2

User #1 value: ,3,
User #2 value: ,3,
User #3 value: ,3,
User #4 value: ,10,
User #5 value: ,11,5,12,
User #6 value: ,5,12,

因此,我想實現的目標是從表#1中獲取用戶#2的值,而我想讓表#2中的所有用戶都包含在用戶#2的值中。 由於用戶#2具有,1、3、5、12,因此我應該從表#2獲得結果,如下所示:

User #1 
User #2
User #3
User #5 
User #6

我目前正在使用以下內容:

SELECT a.Name
FROM TABLE2 a
WHERE
CharIndex(','+convert(varchar,a.Agency)+',',(Select Agency from TABLE1 where UserID = 123)) > 0

這似乎並沒有產生我想要的結果。 如果表#1中只有1個值(例如,3)而不是多個值,那么這將非常有用。

您可以嘗試以下查詢以獲得預期結果。

SELECT DISTINCT a.Name
FROM TABLE2 a,
     dbo.Split((SELECT Agency
                  FROM TABLE1
                  WHERE UserID = 2),',') AS b
WHERE a.Agency LIKE '%,'+b.Slit_Func_ColumnName+',%'

使用SPLIT功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM