ฉันจะประกาศและกำหนดตัวแปรในบรรทัดเดียวใน SQL ได้อย่างไร


131

ฉันต้องการสิ่งที่ชอบ

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

คะแนนโบนัสหากคุณแสดงวิธีเข้ารหัสใบเสนอราคาในสตริง

เช่น:

ฉันต้องการให้สตริงอ่าน

John said to Emily "Hey there Emily"

ความพยายามของฉันจะเป็น

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

4
คั่นสตริงใน SQL Server คือไม่' "
Oded

คำตอบ:


184

ที่นี่:

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

คุณจะทราบว่าจะหลบหนีโดยการเพิ่มมัน'''

เนื่องจากตัวคั่นสตริงเป็น'และไม่ใช่"จึงไม่จำเป็นต้องหลีกเลี่ยง":

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

ตัวอย่างที่สองในหน้า MSDN บนDECLAREแสดงไวยากรณ์ที่ถูกต้อง


5
คุณยังสามารถเริ่มต้นจากคำสั่งที่เลือกเช่น: ประกาศ @eid uniqueidentifier = (เลือก id อันดับ 1 จาก t_Event)
Damien Sawyer

13

บน sql 2008 นี้ถูกต้อง

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

บน sql server 2005 คุณต้องทำสิ่งนี้

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

3

คุณเกือบจะได้รับมัน:

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

ดูเอกสารได้ที่นี่

สำหรับคำพูด SQL Server ใช้เครื่องหมายวรรคตอนไม่ใช่เครื่องหมายคำพูด:

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

ใช้เครื่องหมายวรรคตอนคู่ถ้าคุณต้องการในสตริง:

DECLARE @myVariable nvarchar(max) = 'John said to Emily ''Hey there Emily''';
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.