4 มิถุนายน 2553

บวกค่าชนิด Text ที่มีลูกน้ำคั่น ในคำสั่ง SQL

เมื่อได้ลองทำการบวกค่าที่อยู่ในฐานข้อมูลชนิด Text เช่น 1,000.00 กับค่า 20,000.00

SQL คือ SELECT (num1 + num2) as sumtotal FROM tbl_test

ผลลัพธ์ที่ได้มาคือ 21 ซึ่งมันจะมองเห็นตัวเลขข้างหน้าลูกน้ำ คือ 1 และ 20 มาบวกกันเท่านั้น

วิธีที่ผมใช้แก้ไข คือ

SELECT (REPLACE(num1,',','') + REPLACE(num2,',','')) as sumnew FROM tbl_test

- REPLACE(ค่าที่ต้องการแก้ไข,'ค่าที่ต้องการเปลี่ยน','ค่่าที่นำมาแทนที')

แล้วผลลัพธ์ที่ได้ คือ 21000

แต่ถ้าหาำกค่าที่อยู่ภายในฐานข้อมูลเรามีจุดทศนิยม เช่น 1,000.50 กับค่า 20,000.25

ผลลัพธ์ที่ได้ คือ 21.000.75

ซึ่งคำสั่งนี้จะเหมือนกับ str_replace ใน PHP ครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น