我有兩個表(設備&軟件),我想要做一個INNER JOIN
上。他們都有一個名爲EQCN的領域。這是一個文本字段。我收到以下錯誤:SQL內部加入文本列
The data types text and text are incompatible in the equal to operator.
必須有解決方法。
我有兩個表(設備&軟件),我想要做一個INNER JOIN
上。他們都有一個名爲EQCN的領域。這是一個文本字段。我收到以下錯誤:SQL內部加入文本列
The data types text and text are incompatible in the equal to operator.
必須有解決方法。
將這些列的數據類型更改爲varchar(max)
。
ntext, text, and image data types will be removed in a future version of Microsoft SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead.
對TEXT字段進行連接將非常慢,即使它確實有效。也許使用:
CONVERT(varchar, myColumnName) = 'my value'
這會將其截斷爲「30」個字符並更改語義。 –
雖然這是奇怪的,微軟建議做一個文本或ntext使用類似SUBSTRING的間接比較。例如:
SELECT *
FROM t1
JOIN t2 ON SUBSTRING(t1.textcolumn, 1, 20) = SUBSTRING(t2.textcolumn, 1, 20)
當然,這就提出了一個整體的其他一系列的問題一樣,如果字符的第一個#是相同的,等我會建議去改變類型的路線,如果你能先,而不是接受這個建議。
這些列中最長的條目長度是多少? –
請發佈您的SQL。 – Oded
@Oded - 並非真的需要。如果您嘗試連接兩個屬於'text'數據類型的列,就會出現這種錯誤。 –