簡體   English   中英

SQL - 如果一個表中的列中的字符串包含來自連接表的列中的字符串

[英]SQL - If string in a column from one table contains string in column from joined table

我有兩個表A和B.表A有列ID,名稱和值。 在表B的其他列中,有一個名為IssueID的列。 A.Value的值類似於'ForSymbol12345',而B.IssueID的值類似'12345'。 我能夠在相應表中的某些ID列上連接這兩個表。 但是,我只想選擇B.IssueID存在於A.Value值中的那些行。 換句話說,B.IssueID是A.Value的子串。

可以在SQL中完成嗎? 我嘗試使用CONTAINS(字符串,'值搜索')但顯然第二個參數必須是字符串,不能是列名。 我嘗試過

CONTAINS(A.Value, B.IssueID)

但它給出了一個錯誤,說第二個參數應該是String,TEXT_LEX或Variable(一個簡化的例子顯示如下)

在此輸入鏈接描述

有人可以幫我解決這個問題嗎?

LIKE運算符與JOIN一起使用。

SELECT A.*, B.*
FROM A
INNER JOIN B
ON A.Value LIKE CONCAT('%', B.IssueID, '%') 

下面提到的evil333的CONCAT選項可能有效,但我使用的是SSMS 2008和CONCAT是在SSMS 2012中引入的。所以,我在這里找到了解決方法

https://stackoverflow.com/a/21702750/3482656

你可以做點什么

A.value like '%' + cast(B.IssueID as varchar) + '%'

我希望這有幫助。

暫無
暫無

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

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