如果我不清楚,我很抱歉,我的SQL查询技巧仅限于我在网上找到的内容。
我正在尝试将一个表中的两个字段组合,然后将它(=或LIKE)与同一数据库中另一个表上的字段进行比较。
下面我的示例没有错误,它只是不返回任何数据。
SELECT
CardNumber
,CardName
,(Firstname+' '+Lastname) as '%TEST%'
From AxiomData.dbo.Cards,AxiomData.dbo.Cardholders
WHERE '%TEST%' = AxiomData.dbo.Cards.CardName
ORDER BY CardName ASC;
我需要将一个表中的CardNumber与另一个表中的CardName匹配。
答案 0 :(得分:0)
假设我正确理解了您的问题,并且您没有要从每个表中加入的匹配列,请将名称条件移至join
:
SELECT
CardNumber
,CardName
,(Firstname+' '+Lastname) as FullName
FROM AxiomData.dbo.Cards C
JOIN AxiomData.dbo.Cardholders CH
ON Firstname+' '+Lastname = C.CardName
ORDER BY CardName ASC;
如果您尝试匹配相似的名称并需要使用like
,请在join
中尝试类似的内容:
ON C.CardName LIKE '%'+Firstname+'%'+Lastname+'%'
您可能需要为其中一些列添加别名...
答案 1 :(得分:0)
据推测,您希望表之间有join
。但是,当前的问题是=
。您似乎想要like
:
WHERE AxiomData.dbo.Cards.CardName LIKE '%TEST%'
我想你想要的完整查询如下:
SELECT CardNumber, CardName, (Firstname+' '+Lastname) as FullName
From AxiomData.dbo.Cards c JOIN
AxiomData.dbo.Cardholders ch
ON c.CardNumber = ch.CardNumber
WHERE c.CardName LIKE '%TEST%'
ORDER BY c.CardName ASC;
然而,这只是猜测。如果没有样本数据或表格布局,则无法确定正确的join
条件是什么。