下面的SQL:如何在sql server中連接查詢中的文本?
SELECT notes + 'SomeText'
FROM NotesTable a
給錯誤:
The data types nvarchar and text are incompatible in the add operator.
下面的SQL:如何在sql server中連接查詢中的文本?
SELECT notes + 'SomeText'
FROM NotesTable a
給錯誤:
The data types nvarchar and text are incompatible in the add operator.
唯一的辦法是你的文本字段轉換爲一個nvarchar場。
Select Cast(notes as nvarchar(4000)) + 'SomeText'
From NotesTable a
否則,我建議在應用程序中進行連接。
您必須明確地將字符串類型轉換爲相同的字符串以連接它們。在您的情況下,您可以通過在'SomeText'(N'SomeText')前添加一個'N'來解決問題。如果這不起作用,請嘗試Cast('SomeText'作爲nvarchar(8))。
如果您使用SQL Server 2005或更高版本(取決於Notes字段中數據的大小),您可能需要考慮將其轉換爲nvarchar(max),而不是將其轉換爲可能導致字符串截斷的特定長度。
Select Cast(notes as nvarchar(max)) + 'SomeText' From NotesTable a
如果您在使用SQL Server 2005(或更高版本),你可能要考慮切換到NVARCHAR(MAX)在表中定義; SQL Server 2000的TEXT,NTEXT和IMAGE數據類型將在SQL Server的未來版本中被棄用。 SQL Server 2005提供了對數據類型的向後兼容性,但您應該使用VARCHAR(MAX),NVARCHAR(MAX)和VARBINARY(MAX)。
您可能也想要考慮NULL值。在你的例子中,如果列筆記有一個空值,那麼結果值將爲NULL。如果你想空值表現爲空字符串(這樣的答案出來「SomeText」),然後使用IsNull函數:
Select IsNull(Cast(notes as nvarchar(4000)),'') + 'SomeText' From NotesTable a
另一種選擇是CONCAT命令:
SELECT CONCAT(MyTable.TextColumn, 'Text') FROM MyTable
謝謝,當時的錯誤信息是誤導性的。 – 2008-09-10 15:19:38
謝謝,幫忙捏一下 – jrhicks 2009-11-17 16:41:50