如何在SQL中根据不同的条件连接不同的表?

  • 本文关键字:条件 连接 SQL sql
  • 更新时间 :
  • 英文 :


我有表'TTPBH',其中列'KEY_VALUE',具有列"SERIAL"one_answers"SERIAL_NO"的"SUB"发票",列"帐户">

我想将'TTPBH'与'SUB', 'INVOICE'连接为:

  • If length 'KEY_VALUE'>16日"TTPBH"加入"子"KEY_VALUE"="SERIAL_NO">
  • 如果长度'KEY_VALUE' = 16, 'TTPBH'连接'SUB'上的'KEY_VALUE' = 'SERIAL'
  • 如果长度的KEY_VALUE & lt;16、'TTPBH'在'KEY_VALUE' = 'ACCOUNT'上加入'INVOICE'

请帮我写SQL代码。很多谢谢!

您只需使用您的rdbms的有效语法编写您列出的条件;例如,SQL Server:


SELECT *
FROM TTPBH TT

LEFT JOIN
SUB SB
on ((LEN(TT.KEY_VALUE) > 16 AND TT.KEY_VALUE=SB.SERIAL_NO)
OR
(LEN(TT.KEY_VALUE) = 16 AND TT.KEY_VALUE=SB.SERIAL)
)
LEFT JOIN
INVOICE INV
ON LEN(TT.KEY_VALUE) < 16 AND TT.KEY_VALUE=INV.ACCOUNT