簡體   English   中英

當一列是文本而另一列是數字時,內部連接兩個表

[英]Inner Join two tables when one column is a text and the other is number

我有一個使用一些鏈接的 ODBC 表的訪問程序。 我最初有一個包含以下 INNER JOIN 的查詢:

FROM Neptune_FN_Analysis 
INNER JOIN Neptune_prem ON Neptune_FN_Analysis.PremID = Neptune_prem.premice_id 

這工作得很好,直到列 Neptune_prem.premice_id 從數字更改為文本數據類型。 所以現在我需要一種方法,當一列是數字而另一列是文本時,可以在兩列上使用 INNER JOIN。

請記住,我不能簡單地更改鏈接的 ODBC 表正在查看的表中的數據類型。

如果這是不可能的或可笑的代碼量,我的另一個邏輯選項是進行查詢以創建一個本地表,我可以使用 Neptune_FN_Analysis 表中的所有相同數據進行編輯,並在該查詢之后的代碼中編輯列我正在加入以輸入文本。 如果合理,我寧願只修改這個 SQL 查詢。

首先,我會追蹤誰進行了更改並找出原因。 您可能遇到的問題不僅僅是讓數字匹配。 這些更改不是無緣無故的,如果它們從數字字段更改為文本字段,可能是因為他們需要將文本數據放入字段中,現在如果你繼續這樣做,你將根本無法進行比較使用數字。 數據庫更改需要考慮其他可能會受到影響的因素,而這一點顯然沒有。 作為第一步,找出是誰做的以及為什么這樣做。

如果您正在談論將“500”變成 500,請查看ValCDblCIntCCurCDec和其他轉換函數:

FROM Neptune_FN_Analysis 
INNER JOIN Neptune_prem ON Neptune_FN_Analysis.PremID = CInt(Neptune_prem.premice_id)

您是否嘗試過在 varchar 中使用CAST('abc' AS varchar(5))數字列?

已編輯

您應該使用clng將文本轉換為數字...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM