我想使用列invoice和nr. 該列nr在 TableA 中的兩個表上具有不同的格式。列nr總是有三個位置或一個空值。在 TableB 中,列 nr 有 1 或 2 個位置。


例如,如果我們檢查兩個表上的 invoice=322 和 invoice=234。我必須在 TableB 上填寫“0”或“00”以等于位置數。
而對于TableA,whennr是空值或空值,我想用0替換它,例如,如果我們在兩個表上檢查invoice=123和invoice=567。
感謝您提供的任何幫助。
uj5u.com熱心網友回復:
TableA 的 nr 列可能是 VARCHAR 而不是數字型別。
所以將其 CAST 或 CONVERT 轉換為與 TableB.nr 相同的型別(可能是 INT)
并使用COALESCE或ISNULL將 NULL 更改為 0
SELECT
a.invoice
, b.nr
, a.name
FROM TableA a
INNER JOIN TableB b
ON b.invoice = a.invoice
AND b.nr = ISNULL(CAST(a.nr AS INT), 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363130.html
標籤:sql sql-server sql-server-2012
上一篇:如何只回傳一行和一列名稱?
