Sql-Server
加入查詢中的文本欄位
我無法更改表的 DDL,但我需要加入兩個
text
欄位。我得到一個錯誤Msg 402, Level 16, State 1, Line 23
數據類型 text 和 text 在 equal to 運算符中不兼容。
下面是說明我的問題的範例 DDL,我該如何克服?
Declare @Table1 Table(id text,name nvarchar(200)) Insert Into @Table1 (id, name) Values ('123', 'Joe'), ('222.00', 'Jim') Declare @Table2 Table (id text,green nvarchar(200)) Insert Into @Table2 (id, green) Values ('123', 'JDSKLJS'), ('222.00', 'KLJKLJJKL') Select * FROM @Table1 t1 INNER JOIN @Table2 t2 ON t1.id = t2.id
您可以將
text
欄位轉換為varchar(max)
Declare @Table1 Table(id text,name nvarchar(200)) Insert Into @Table1 (id, name) Values ('123', 'Joe'), ('222.00', 'Jim') Declare @Table2 Table (id text,green nvarchar(200)) Insert Into @Table2 (id, green) Values ('123', 'JDSKLJS'), ('222.00', 'KLJKLJJKL'); Select * FROM @Table1 t1 INNER JOIN @Table2 t2 ON cast(t1.id as varchar(max)) = cast(t2.id as varchar(max)) GO
編號 | 姓名 | 編號 | 綠色 :----- | :--- | :----- | :-------- 123 | 喬 | 123 | JDSKLJS 222.00 | 吉姆 | 222.00 | KLJKLJJKL
dbfiddle在這裡