ใน SQL Server 2017 คุณสามารถใช้ไวยากรณ์นี้ได้ แต่ใช้ไม่ได้ในเวอร์ชันก่อนหน้า:
SELECT Name = TRIM(Name) FROM dbo.Customer;
ใน SQL Server 2017 คุณสามารถใช้ไวยากรณ์นี้ได้ แต่ใช้ไม่ได้ในเวอร์ชันก่อนหน้า:
SELECT Name = TRIM(Name) FROM dbo.Customer;
คำตอบ:
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer
ในการตัดแต่งทางด้านขวาให้ใช้:
SELECT RTRIM(Names) FROM Customer
หากต้องการตัดด้านซ้ายให้ใช้:
SELECT LTRIM(Names) FROM Customer
ในการตัดแต่งทั้งสองด้านให้ใช้:
SELECT LTRIM(RTRIM(Names)) FROM Customer
ฉันคิดว่านี่เป็นแบบฝึกหัดขัดข้อมูลเพียงครั้งเดียว เมื่อเสร็จแล้วตรวจสอบให้แน่ใจว่าคุณได้เพิ่มข้อ จำกัด ของฐานข้อมูลเพื่อป้องกันข้อมูลที่ไม่ดีในอนาคตเช่น
ALTER TABLE Customer ADD
CONSTRAINT customer_names__whitespace
CHECK (
Names NOT LIKE ' %'
AND Names NOT LIKE '% '
AND Names NOT LIKE '% %'
);
นอกจากนี้ให้พิจารณาไม่อนุญาตให้ใช้อักขระอื่น ๆ (แท็บการคืนค่าขนส่งฟีดบรรทัด ฯลฯ ) ที่อาจทำให้เกิดปัญหา
นอกจากนี้ยังอาจจะเป็นช่วงเวลาที่ดีในการแยกรายชื่อเหล่านั้นลงในfamily_name
, first_name
ฯลฯ :)
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,' ',' '),CHAR(13), ' '),char(10), ' ')))
from author
ใน sql server 2008 r2 พร้อมนิพจน์ ssis เรามีฟังก์ชั่นตัดแต่ง
SQL Server Integration Services (SSIS) เป็นส่วนประกอบของซอฟต์แวร์ฐานข้อมูล Microsoft SQL Server ที่สามารถใช้เพื่อดำเนินการย้ายข้อมูลได้หลากหลาย
คุณสามารถดูคำอธิบายทั้งหมดได้ที่ลิงค์นี้
http://msdn.microsoft.com/en-us/library/ms139947.aspx
แต่ฟังก์ชันนี้มีข้อ จำกัด บางประการซึ่ง msdn กล่าวถึงในหน้านั้นด้วย แต่นี่อยู่ใน sql server 2008 r2
TRIM(" New York ") .The return result is "New York".
"REPLACE" เวอร์ชันขยาย:
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]