Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีการแปลง Varchar เป็น Double ใน SQL?


คุณสามารถแปลง varchar เป็นสองเท่าโดยใช้ฟังก์ชัน CAST() ไวยากรณ์มีดังนี้:

เลือก yourColumnName1,yourColumnName2,......N, CAST(yourColumnName AS DECIMAL(TotalDigit,DigitAfterDecimalPoint)) anyVariableName FROM yourtableNameORDER BY anyVariableName DESC;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง VarcharToDouble -> ( -> รหัส int ไม่ใช่ NULL AUTO_INCREMENT, -> ชื่อ varchar(10), -> จำนวน varchar(10) , -> คีย์หลัก (Id) -> ); ตกลงแบบสอบถาม 0 แถวที่ได้รับผลกระทบ (0.67 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงในค่า VarcharToDouble (ชื่อ, จำนวน) ('John','456.78'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า VarcharToDouble (ชื่อ, จำนวน) ('Larry', '8465.98');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า VarcharToDouble (ชื่อ, จำนวน) ('ไมค์', '9083.45'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน VarcharToDouble(ชื่อ,จำนวน) ค่า('Sam','46475.50');แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า VarcharToDouble(ชื่อ,จำนวน)('Carol','10003.35');แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.17 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

mysql> เลือก *จาก VarcharToDouble;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+-------+----------+| รหัส | ชื่อ | จำนวน |+----+-------+----------+| 1 | จอห์น | 456.78 || 2 | แลร์รี่ | 8465.98 || 3 | ไมค์ | 9083.45 || 4 | แซม | 46475.50 || 5 | แครอล | 10003.35 |+----+-------+----------+5 แถวในชุด (0.00 วินาที)

นี่คือข้อความค้นหาที่จะแปลง varchar เป็นสองเท่าโดยใช้ CAST():

mysql> เลือก Id, Name, CAST(Amount AS DECIMAL(10,2)) TotalAmount จาก VarcharToDouble -> สั่งซื้อโดย TotalAmount desc;

ต่อไปนี้เป็นผลลัพธ์:

mysql> เลือก Id, Name, CAST(Amount AS DECIMAL(10,2)) TotalAmount จาก VarcharToDouble -> สั่งซื้อโดย TotalAmount desc;