การแปลงชนิดข้อมูล

การรายงานผลด้วย SQL

Tyler Pernes

Learning & Development Consultant

เป้าหมายของบทนี้

การรายงานผลด้วย SQL

ชนิดข้อมูลที่ไม่เป็นระเบียบ

การรายงานผลด้วย SQL

ปัญหาที่ 1: ฟังก์ชันเฉพาะชนิดข้อมูล

การรายงานผลด้วย SQL

ปัญหาที่ 1: ฟังก์ชันเฉพาะชนิดข้อมูล

การรายงานผลด้วย SQL

ปัญหาที่ 1: ฟังก์ชันเฉพาะชนิดข้อมูล

การรายงานผลด้วย SQL

ปัญหาที่ 2: การรวมตาราง (JOIN)

การรายงานผลด้วย SQL

ปัญหาที่ 2: การรวมตาราง (JOIN)

การรายงานผลด้วย SQL

ปัญหาที่ 2: การรวมตาราง (JOIN)

การรายงานผลด้วย SQL

ปัญหาที่ 2: การรวมตาราง (UNION)

การรายงานผลด้วย SQL

ปัญหาที่ 2: การรวมตาราง (UNION)

การรายงานผลด้วย SQL

การตีความข้อผิดพลาด

ข้อผิดพลาดจากฟังก์ชันเฉพาะชนิดข้อมูล:

SELECT AVG(first_name)
FROM athletes;
ERROR: Function avg(character varying) does not exist

ข้อผิดพลาดจาก JOIN:

SELECT country, continent
FROM countries AS c1
JOIN continents AS c2
ON c1.continent_id = c2.id;
ERROR: Operator does not exist: integer = character varying
การรายงานผลด้วย SQL

วิธีแก้: ใช้ CAST()

ไวยากรณ์:

CAST(field AS type)

ตัวอย่าง:

CAST(birthday AS date)
CAST(country_id AS int)
การรายงานผลด้วย SQL

การใช้ CAST กับฟังก์ชัน

SELECT DATE_PART('month',birthdate)
FROM birthdates;
ERROR: Can't run DATE_PART on string.
SELECT DATE_PART('month', 
       CAST(birthdate AS date)) 
FROM birthdates;
+-----+
| 04  |
| 05  |
+-----+

การรายงานผลด้วย SQL

การใช้ CAST กับ JOIN

SELECT a.id, b.id
FROM table_a AS a
JOIN table_b AS b
ON a.id = b.id;
ERROR: Cannot join ON varchar = int.
SELECT a.id, b.id
FROM table_a AS a
JOIN table_b AS b
ON a.id = CAST(b.id AS varchar);
Query Ran Successfully!

การรายงานผลด้วย SQL

การรับมือกับปัญหาชนิดข้อมูล

  • แก้ไขเมื่อพบปัญหา
  • อ่านข้อความแจ้งข้อผิดพลาดเสมอ!
การรายงานผลด้วย SQL

การรับมือกับปัญหาชนิดข้อมูล

SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'countries';
+--------------+--------------------+
| column_name  | data_type          |
|--------------|--------------------|
| id           | integer            |
| country      | character varying  |
| region       | character varying  |
+--------------+--------------------+
การรายงานผลด้วย SQL

เอกสารอ้างอิงชนิดข้อมูล

การรายงานผลด้วย SQL

มาฝึกกันเถอะ!

การรายงานผลด้วย SQL

Preparing Video For Download...