ตัด 0 นำหน้าในตัวแปร Varchar
ผมได้เจอปัญหาว่าบางครั้งการแปลงข้อมูลตัวเลขเช่นเดือน
Month = ‘02’
เมื่อต้องการเอามาใช้งานหรือเข้าสูตรต่อ
โดยให้ Type Varchar
เช่นเดิมนั้นเกิดปัญหา
เพราะแหล่งข้อมูลที่เข้ามามีทั้ง
‘04’ และ ‘4’
ไปเจอที่
http://blog.sqlauthority.com/2012/11/19/sql-server-removing-leading-zeros-from-column-in-table/
http://blog.sqlauthority.com/2012/11/19/sql-server-removing-leading-zeros-from-column-in-table/
ของตาพิเนา....ตามนี้
********************************************************
********************************************************
Code:
SUBSTRING(ชื่อCloumn, PATINDEX('%[^0 ]%', ชื่อCloumn + ' '), LEN(ชื่อCloumn))
********************************************************
ตัวอย่าง:
USE tempdb
GO
-- Create sample table
CREATE TABLE Table1 (Col1 VARCHAR(100))
INSERT INTO Table1 (Col1)
SELECT '0001'
UNION ALL
SELECT '000100'
UNION ALL
SELECT '100100'
UNION ALL
SELECT '000 0001'
UNION ALL
SELECT '00.001'
UNION ALL
SELECT '01.001'
GO
-- Original data
SELECT *
FROM Table1
GO
-- Remove leading zeros
SELECT
SUBSTRING(Col1, PATINDEX('%[^0 ]%', Col1 + ' '), LEN(Col1))
FROM Table1
GO
-- Clean up
DROP TABLE Table1
GO
GO
-- Create sample table
CREATE TABLE Table1 (Col1 VARCHAR(100))
INSERT INTO Table1 (Col1)
SELECT '0001'
UNION ALL
SELECT '000100'
UNION ALL
SELECT '100100'
UNION ALL
SELECT '000 0001'
UNION ALL
SELECT '00.001'
UNION ALL
SELECT '01.001'
GO
-- Original data
SELECT *
FROM Table1
GO
-- Remove leading zeros
SELECT
SUBSTRING(Col1, PATINDEX('%[^0 ]%', Col1 + ' '), LEN(Col1))
FROM Table1
GO
-- Clean up
DROP TABLE Table1
GO
ความคิดเห็น
แสดงความคิดเห็น