我有两个表Client_Type和Client_Data
Client_Type Client_Data
Type Description ID Type Files
------------------- -----------------------------------
A AGREEMENT 1 Student PDF-Report Card.pdf
E EXAM PAPER 2 Teacher PDF- Contract Agreement.pdf
L LETTER 3 Student word- Final exam paper.doc
R REPORT 4 Student PDF-Letter.pdf
我想根据以上两个表制作第三个表格
ID Client_Type.Type Files
-----------------------------------
1 R PDF-Report Card.pdf
3 E word- Final exam paper.doc
4 L PDF-Letter.pdf
我想搜索[Client_Data]。[Type],如果是Student,那么我想将[Client_Type]。[Description]与[Client_Data]匹配。[Files],如果有一个与描述匹配的单词我想要将类型分配给第三个表中的该记录
你想要这样的东西:
SELECT cd.*, ct.type AS client_type
FROM client_data cd JOIN
client_type ct
ON cd.files LIKE '%' + ct.description + '%'
WHERE cd.type = 'Student';
如果您具有区分大小写的排序规则,则可以小写ON
子句的列:
on lower(cd.files) like '%' + LOWER(ct.description) + '%'
并且,如果是安全的,你想要保留所有学生,然后使用LEFT JOIN
而不仅仅是JOIN
。
这可能不会很快(取决于您的数据的大小),但它应该做你想要的:
SELECT
cd.id,
ct.type,
cd.files
FROM
client_data cd
INNER JOIN client_type ct
ON cd.Files LIKE '%' + ct.description + '%'
WHERE
cd.Type = 'Student';