คลังเก็บบล็อก

จัด format SQL ใน SQL SEVER


ใน SQL SEVER บางครั้งเราอาจจะต้องแก้ sql statement ยาวๆ ซ้อนกันหลายๆชั้น ถ้าไปจัด format ก่อนโดยใช้ เว็บที่ให้บริการ sql formatter เช่น freeformatter ,SQLFormat Online SQL formatting service จะอ่านคำสั่งง่ายขึ้น

แต่น่าจะดีกว่าถ้าสามารถจัด format ใน SQL Server Management Studio ได้โดยตรงทำได้โดยการโหลด Plug-in Poor Man’s T-SQL Formatter จากเว็บ Architect Shack โดยหลังจากติดตั้งแล้วจะมี เมนู Format T-SQL Code เพิ่มขึ้นมา ถ้าไม่ใช้รูปแบบที่คุ้นเคยสามารถกำหนดรูปแบบที่ถนัดได้ในเมนู T-SQL Formatting Options

นอกจากนี้ ยังมี plug in สำหรับ notepage++ ,WinMerge อีกนะครับ เข้าใจ programmer ,DBA จริงๆ

โฆษณา

หาและลบข้อมูลซ้ำในตาราง


การย้ายระบบจากระบบเก่ามาระบบใหม่ เป็นธรรมดาที่จะเจอปัญหาความผิดพลาดจากการที่ระบบเดิมออกแบบมาไม่ดี ทำให้มีข้อมูลซ้ำซ้อน เช่น ระบบรับสมัครสมาชิกไม่ได้กรองข้อมูลว่า ผู้ที่ลงทะเบียนสมัครไว้แล้วหรือยัง แต่ในระบบใหม่มีความจำเป็นที่จะต้องควบคุมให้ หนึ่งคน มีได้หนึ่งยูเซอร์เท่านั้น เราสามารถกรองออกได้โดยข้อมูล อีเมล์ หมายเลขบัตรประชาชน อาจจะเป็นต้องใช้ ชื่อและนามสกุลด้วย โดยใช้ query ง่ายๆ

SELECT email, count (*) AS duplicate
FROM `users`
GROUP BY email
HAVING duplicate > 1;

ก็จะได้อีเมล์ที่ซ้ำกันออกมาออกมา แต่เจอผู้ที่สมัครหลายยูเซอร์จำนวนมาก จะมาลบที่ละคนก็ไม่ไหว อาศัยกฎของทางเว็บที่ห้ามสมัครเกินกว่าหนึ่งยูเซอร์ มาเป็นเหตุผลในการลบรายการที่ซ้ำออกไป อัตโนมัติ
โดยเราไม่จำเป็นต้องเขียนคำสั่งใน PHP มาวนลบข้อมูล เพราะสามารถใช้วิธีสร้างตารางชั่วคราวมาเก็บข้อมูลที่ไม่ซ้ำ

INSERT INTO `users_temp` 
SELECT *, count (*) AS duplicate
FROM `users`
GROUP BY email
HAVING duplicate > 1;

อธิบายง่ายๆ คือเลือกข้อมูลโดยกรุ๊บข้อมูลที่ซ้ำไปแทรกในตารางใหม่ ครั้งต่อไปก็ดัดแปลงเป็นเลขบัตรประชาชน ชื่อและนามสกุล พอสมควรแล้วก็ลบตารางเดิม เปลี่ยนชื่อตารางใหม่ไปแทนของเดิม

%d bloggers like this: