SQL交叉应用与其他信息
我有一张和这张相似的桌子SQL交叉应用与其他信息,sql,sql-server,Sql,Sql Server,我有一张和这张相似的桌子 ID | InvoiceNum | Client1 | Client2 | Client3 1 123 Test2 2 1234 Abc Test1 3 12345 TestC 我想搜索所有3个客户机字段,然后返回到一个列,其中包含它来自哪个字段的一些附加信息 ID | InvoiceNum | Client | Position 1 12
ID | InvoiceNum | Client1 | Client2 | Client3
1 123 Test2
2 1234 Abc Test1
3 12345 TestC
我想搜索所有3个客户机字段,然后返回到一个列,其中包含它来自哪个字段的一些附加信息
ID | InvoiceNum | Client | Position
1 123 Test2 1
2 1234 Test1 3
3 12345 TestC 2
这是我的SQL查询
Select id, invnum ,Client
From myTable A
Cross Apply (values (client1) ,(client2) ,(client3) ) B(Client)
Where Client like '%test%'
ORDER BY invnum
使用交叉应用,我可以将所有内容都放到一列中,但不确定是否/如何获得该职位?只需将其添加到
值中即可:
Select a.id, a.invnum, b.Client, b.position
From myTable A Cross Apply (values (client1, 1) ,(client2, 2), (client3, 3)
) B(Client, position)
where Client like '%test%'
order by a.invnum
只需将其添加到值中即可:
Select a.id, a.invnum, b.Client, b.position
From myTable A Cross Apply (values (client1, 1) ,(client2, 2), (client3, 3)
) B(Client, position)
where Client like '%test%'
order by a.invnum