SQL sau:
SELECT notes + 'SomeText'
FROM NotesTable a
Đưa ra lỗi:
Các kiểu dữ liệu nvarchar và văn bản không tương thích trong toán tử thêm.
Câu trả lời:
Cách duy nhất là chuyển đổi trường văn bản của bạn thành trường nvarchar.
Select Cast(notes as nvarchar(4000)) + 'SomeText'
From NotesTable a
Nếu không, tôi khuyên bạn nên thực hiện nối trong ứng dụng của mình.
Bạn cũng có thể muốn xem xét các giá trị NULL. Trong ví dụ của bạn, nếu ghi chú cột có giá trị null, thì giá trị kết quả sẽ là NULL. Nếu bạn muốn các giá trị null hoạt động dưới dạng chuỗi trống (để câu trả lời xuất hiện là 'SomeText'), thì hãy sử dụng hàm IsNull:
Select IsNull(Cast(notes as nvarchar(4000)),'') + 'SomeText' From NotesTable a
Nếu bạn đang sử dụng SQL Server 2005 trở lên, tùy thuộc vào kích thước của dữ liệu trong trường Ghi chú, bạn có thể muốn xem xét truyền tới nvarchar (max) thay vì truyền đến một độ dài cụ thể có thể dẫn đến việc cắt ngắn chuỗi.
Select Cast(notes as nvarchar(max)) + 'SomeText' From NotesTable a
Một tùy chọn khác là lệnh CONCAT :
SELECT CONCAT(MyTable.TextColumn, 'Text') FROM MyTable
Nếu bạn đang sử dụng SQL Server 2005 (hoặc cao hơn), bạn có thể muốn xem xét chuyển sang NVARCHAR (MAX) trong định nghĩa bảng của mình; Các kiểu dữ liệu TEXT, NTEXT và IMAGE của SQL Server 2000 sẽ không được dùng nữa trong các phiên bản SQL Server trong tương lai. SQL Server 2005 cung cấp khả năng tương thích ngược với các kiểu dữ liệu, nhưng có lẽ bạn nên sử dụng VARCHAR (MAX), NVARCHAR (MAX) và VARBINARY (MAX) để thay thế.
text
là một 4000 "khổng lồ"nvarchar
để đảm bảo rằng hầu hết mọi thứ sẽ phù hợp?