我有表'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