NULL ปลอดภัยลดลงในการประมาณค่าทดแทนสำหรับฟังก์ชัน SQL Server 2012 CONCAT
SQL Server 2012 :
SELECT CONCAT(data1, data2)
PRE SQL 2012 (สองโซลูชัน) :
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
โซลูชันทั้งสองนี้รวบรวมคำตอบและคำเตือนที่ยอดเยี่ยมหลายประการจากผู้โพสต์อื่น ๆ เช่น @Martin Smith, @Svish และ @ vasin1987
ตัวเลือกเหล่านี้เพิ่มNULL
ในการแคสต์''
(สตริงว่าง) เพื่อการNULL
จัดการที่ปลอดภัยในขณะที่บัญชีสำหรับพฤติกรรมที่แตกต่างกันของไฟล์+
ดำเนินการที่เกี่ยวข้องกับตัวถูกดำเนินการเฉพาะ
โปรดทราบว่าโซลูชันODBC Scaler Functionถูก จำกัด ไว้ที่ 2 อาร์กิวเมนต์ในขณะที่แนวทาง+
ตัวดำเนินการสามารถปรับขนาดได้หลายอาร์กิวเมนต์ตามต้องการ
ยังทราบถึงปัญหาที่อาจเกิดขึ้นโดยระบุว่า @Swifty เกี่ยวกับการเริ่มต้นขนาดนี่แก้ไขได้โดยการvarchar
varchar(MAX)