Làm cách nào để khai báo và gán một biến trên một dòng trong SQL


131

Tôi muốn một cái gì đó như

DECLARE myVariable nvarchar[MAX] = "hello world".

Điểm thưởng nếu bạn chỉ cho tôi cách mã hóa trích dẫn trong chuỗi.

Ví dụ:

Tôi muốn đọc chuỗi

John said to Emily "Hey there Emily"

nỗ lực của tôi sẽ là

DECLARE myVariable nvarchar[MAX] = "John said to Emily \"Hey there Emily\""

4
Dấu phân cách chuỗi trong SQL Server là 'không ".
— Oded

Câu trả lời:


183

Đây là:

DECLARE @var nvarchar(max) = 'Man''s best friend';

Bạn sẽ lưu ý rằng cái 'được thoát bằng cách nhân đôi nó lên ''.

Vì dấu phân cách chuỗi là 'và không ", nên không cần phải thoát ":

DECLARE @var nvarchar(max) = '"My Name is Luca" is a great song';

Ví dụ thứ hai trong trang MSDN trên DECLAREhiển thị cú pháp đúng.


5
Bạn cũng có thể khởi tạo từ một câu lệnh chọn, ví dụ: khai báo @eid uniqueidentifier = (chọn 1 id hàng đầu từ t_Event)
— Damien Sawyer

13

trên sql 2008 này là hợp lệ

DECLARE @myVariable nvarchar(Max) = 'John said to Emily "Hey there Emily"'
select @myVariable

trên máy chủ sql 2005, bạn cần làm điều này

DECLARE @myVariable nvarchar(Max) 
select @myVariable = 'John said to Emily "Hey there Emily"'
select @myVariable

3

Bạn đã gần nhận được nó:

DECLARE @myVariable nvarchar(max) = 'hello world';

Xem ở đây cho các tài liệu

Đối với dấu ngoặc kép, SQL Server sử dụng dấu nháy đơn, không phải dấu ngoặc kép:

DECLARE @myVariable nvarchar(max) = 'John said to Emily "Hey there Emily"';

Sử dụng dấu nháy đơn nếu bạn cần chúng trong một chuỗi:

DECLARE @myVariable nvarchar(max) = 'John said to Emily ''Hey there Emily''';
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.