คำถามติดแท็ก concat

2
'CONCAT' ไม่ใช่ชื่อฟังก์ชันในตัวที่ได้รับการยอมรับ
ลูกค้ารายงานว่าพวกเขากำลังทำงานบน SQL Server 2012 และเราได้ส่งแบบสอบถามทดสอบสำหรับการทดสอบก่อนส่งมอบครั้งสุดท้ายอย่างไรก็ตาม: 'CONCAT' ไม่ใช่ชื่อฟังก์ชันในตัวที่ได้รับการยอมรับ ฉันเข้าใจว่าCONCAT()เป็นฟังก์ชันในตัวใหม่ที่นำมาใช้ใน SQL Server 2012 ซึ่งดีและดี แต่ฉันถูกขอให้ย้อนกลับการเปลี่ยนแปลงของฉันเพื่อให้ 2008R2 นี้เข้ากันได้ภายใต้หน้ากากของ "ผู้ใช้ที่ดำเนินการแบบสอบถามอาจไม่ มีสิทธิ์ Transact-SQL ในการดำเนินการ " ดังนั้นฉันแค่พิสูจน์จุดของฉันว่าไคลเอนต์ส่วนใหญ่มี SQL Server รุ่นอื่นติดตั้งใน DEV มากกว่าที่พวกเขาทำใน PROD ฉันไม่สามารถหาข้อมูลใด ๆ เกี่ยวกับการปฏิเสธการSELECT/EXECUTEอนุญาตโดยเฉพาะสำหรับฟังก์ชั่นที่มีมูลค่าสเกลาร์ในตัว แต่เป็นไปได้และถ้าเป็นเช่นนั้นผู้ใช้จะยังได้รับข้อความแสดงข้อผิดพลาดเดียวกันหรือไม่

2
เหตุใดผู้ดำเนินการเชื่อมต่อจึงประมาณค่าแถวน้อยกว่าอินพุต
ในตัวอย่างแบบสอบถามแผนต่อไปนี้ดูเหมือนว่าชัดเจนว่าการประมาณแถวสำหรับConcatenationผู้ประกอบการควรเป็น~4.3 billion rowsหรือผลรวมของแถวประมาณการสำหรับสองอินพุต อย่างไรก็ตามมีการประมาณค่าการ~238 million rowsผลิตซึ่งนำไปสู่การเพิ่มประสิทธิภาพย่อยSort/ Stream Aggregateกลยุทธ์ที่กระจายข้อมูลหลายร้อย GB ไปยัง tempdb การประมาณที่สอดคล้องกันอย่างมีเหตุผลในกรณีนี้จะทำให้เกิด a Hash Aggregateลบการรั่วไหลและเพิ่มประสิทธิภาพของแบบสอบถาม นี่เป็นข้อบกพร่องใน SQL Server 2014 หรือไม่ มีสถานการณ์ที่ถูกต้องหรือไม่ที่การประมาณการต่ำกว่าอินพุทอาจมีเหตุผลหรือไม่? วิธีแก้ไขปัญหาใดบ้างที่อาจมีอยู่ นี่คือแผนแบบสอบถามเต็มรูปแบบ (ไม่ระบุชื่อ) ฉันไม่สามารถดูแลระบบเข้าถึงเซิร์ฟเวอร์นี้เพื่อให้เอาต์พุตจากQUERYTRACEON 2363หรือแฟล็กการติดตามที่คล้ายกัน แต่อาจสามารถรับเอาต์พุตเหล่านี้จากผู้ดูแลระบบหากพวกเขาจะเป็นประโยชน์ ฐานข้อมูลอยู่ในระดับความเข้ากันได้ 120 ดังนั้นจึงใช้เครื่องมือประมาณการ Cardinality ใหม่ของ SQL Server 2014 สถิติจะถูกอัพเดตด้วยตนเองทุกครั้งที่มีการโหลดข้อมูล เมื่อพิจารณาจากปริมาณข้อมูลเรากำลังใช้อัตราการสุ่มตัวอย่างเริ่มต้น เป็นไปได้ว่าอัตราการสุ่มตัวอย่างที่สูงขึ้น (หรือFULLSCAN) อาจมีผลกระทบ

4
วิธีการยกเว้นค่า NULL ภายใน CONCAT MySQL
หากฉันมีสิ่งนี้ - tadd คือAddressตาราง: CONCAT(tadd.street_number, ' ', tadd.street_name,', ', tadd.apt_number,', ', tadd.city,', ', tadd.postal_code,', ', tadd.country) AS 'Address' มีวิธียกเว้น apt_number หรือไม่หากไม่มีอยู่? ฉันคิดว่า: WHERE tadd.apt_number IS NOT NULL แต่มันจะคืนค่าเฉพาะแถวเหล่านั้นด้วยapt_numberและแม้ว่าบางสิ่งจะทำงานฉันจะจัดการกับเครื่องหมายจุลภาคพิเศษนั้นได้อย่างไร หากเป็นรายการซ้ำโปรดโพสต์ลิงก์ในความคิดเห็น
15 mysql  null  concat 

1
วิธีเพิ่มมูลค่าของคอลัมน์ด้วยเครื่องหมายอัญประกาศคู่ (เพิ่มเครื่องหมายคำพูดรอบสตริง)
ฉันมีตารางที่มีคอลัมน์ที่เป็นประเภทข้อความ ในคอลัมน์เป็นอักขระตัวเลข สิ่งที่ฉันพยายามทำให้สำเร็จคือห่ออักขระเหล่านั้นด้วยเครื่องหมายคำพูดคู่ ตัวอย่าง: NAME ID QTY Apples A1 1 Oranges O1 1 Foo F1 0 ผลลัพธ์ที่ออกมา: NAME ID QTY Apples A1 "1" Oranges O1 "1" Foo F1 "0" ฉันพยายามเรียกใช้คำสั่ง SELECT ต่อไปนี้ แต่ไม่ได้ให้ผลลัพธ์ที่ฉันต้องการ บางทีคุณสามารถแนะนำฉันในทิศทางที่ถูกต้อง SELECT `qty`, CHAR('"'|| qty ||'"') FROM `myTable`; ขอบคุณ
9 mysql  concat 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.