Kolom Terhitung dan Prioritas Ekspresi
Aritmetika, penggabungan, dan prioritas operator dalam daftar SELECT.
Kolom Terhitung dan Prioritas Ekspresi adalah pelajaran SQL Interview Prep gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Interview Prep mencakup 4 pelajaran total.
Kolom Hasil Perhitungan dalam SELECT
Kolom hasil perhitungan adalah ekspresi dalam SELECT yang menghasilkan suatu nilai, bukan membacanya secara langsung—misalnya price * quantity. Selalu beri alias yang jelas.
SELECT product,
price,
quantity,
price * quantity AS line_total
FROM order_items;Operator Aritmetika
SQL memiliki operator matematika yang Anda harapkan: +, -, *, /, serta modulo. Jenis hasil mengikuti operandnya—dan di situlah jebakan berikutnya tersembunyi.
SELECT 7 + 3 AS sum_val,
7 - 3 AS diff_val,
7 * 3 AS prod_val,
7 % 3 AS remainder;Jebakan Pembagian Bilangan Bulat
Hati-hati: membagi dua bilangan bulat menghasilkan pembagian bilangan bulat, sehingga 5 / 2 menghasilkan 2, bukan 2.5. Perbaiki dengan melakukan casting salah satu sisi ke desimal atau mengalikannya dengan 1.0.
SELECT 5 / 2 AS int_div, -- 2
5 * 1.0 / 2 AS real_div, -- 2.5
CAST(5 AS DECIMAL) / 2 AS cast_div; -- 2.5Prioritas Operator
SQL mengikuti prioritas matematika yang normal: * dan / dijalankan sebelum + dan -. Jadi 2 + 3 * 4 menghasilkan 14, bukan 20. Tanda kurung mengesampingkan semuanya.
SELECT 2 + 3 * 4 AS no_parens, -- 14
(2 + 3) * 4 AS with_parens; -- 20Prioritas dalam Kueri Diskon Nyata
Kesalahan prioritas sering muncul dalam logika bisnis. Untuk harga setelah diskon, price - price * rate benar karena * dijalankan terlebih dahulu. Selalu periksa secara masuk akal pengelompokan yang sebenarnya digunakan mesin basis data.
SELECT price,
discount_rate,
price - price * discount_rate / 100 AS net_price
FROM products;Penggabungan String
Menggabungkan teks bergantung pada basis datanya: || di Postgres dan SQL standar, + di SQL Server, serta CONCAT() di MySQL. CONCAT() adalah pilihan yang aman dan portabel.
-- Postgres / standard
SELECT first_name || ' ' || last_name AS full_name
FROM employees;
-- Portable
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;NULL Merusak Perhitungan Aritmetika
Hal penting: perhitungan apa pun dengan NULL menghasilkan NULL. Jadi base_salary + bonus menghasilkan NULL bagi siapa pun yang tidak memiliki bonus. Bungkus kolom yang berisiko dengan COALESCE untuk memberikan nilai bawaan.
SELECT base_salary,
bonus,
base_salary + bonus AS unsafe_total,
base_salary + COALESCE(bonus,0) AS safe_total
FROM employees;Penggabungan dan NULL Menurut Dialek
NULL juga memengaruhi teks, dan setiap dialek berbeda: Postgres membuat seluruh string menjadi NULL, sedangkan CONCAT di SQL Server memperlakukan NULL sebagai teks kosong. Bungkus setiap bagian dengan COALESCE agar keluarannya konsisten.
SELECT COALESCE(first_name,'') || ' ' || COALESCE(last_name,'') AS full_name
FROM employees;Fungsi di dalam Ekspresi
Kolom hasil perhitungan dapat dengan mudah membungkus fungsi seperti ROUND, ABS, atau UPPER. Pemanggilan fungsi hanyalah ekspresi lain, jadi Anda dapat menumpuknya langsung di dalam perhitungan.
SELECT product,
ROUND(price * quantity * 1.0, 2) AS line_total,
UPPER(product) AS product_caps
FROM order_items;Pemaksaan Tipe dan CAST
Ketika tipe operand berbeda, SQL melakukan pemaksaan tipe implisit yang dapat mengejutkan Anda. Nyatakan secara eksplisit dengan CAST(expr AS type)—pewawancara akan menilainya sebagai kode yang cermat dan defensif.
SELECT 'Order #' || CAST(order_id AS VARCHAR) AS label
FROM orders;Ekspresi Boolean sebagai Kolom
Perbandingan seperti price > 100 sendiri merupakan sebuah ekspresi. Postgres dapat memilihnya sebagai true/false, tetapi jawaban yang portabel membungkusnya dalam CASE untuk menghasilkan 1/0 atau sebuah label.
-- Portable
SELECT product,
CASE WHEN price > 100 THEN 1 ELSE 0 END AS is_pricey
FROM products;Uji Cepat
Evaluasikan ekspresinya.
Rangkuman
Rangkuman: buat alias untuk kolom hasil perhitungan Anda. Gunakan casting untuk pembagian desimal, perhatikan prioritas, gunakan CONCAT() untuk teks yang portabel—dan ingat bahwa NULL merusak perhitungan, jadi lindungi dengan COALESCE.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kolom Terhitung dan Prioritas Ekspresi” gratis?
Ya — teks lengkap “Kolom Terhitung dan Prioritas Ekspresi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Interview Prep, upgrade ke CoddyKit PRO. Kursus SQL Interview Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kolom Terhitung dan Prioritas Ekspresi”?
Aritmetika, penggabungan, dan prioritas operator dalam daftar SELECT. Kamu berlatih SQL Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Interview Prep?
Tidak diperlukan pengalaman sebelumnya. SQL Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Kolom Terhitung dan Prioritas Ekspresi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Interview Prep ini?
Ya. Setiap pelajaran SQL Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Memproyeksikan Kolom dan Jebakan Alias
- Kolom Terhitung dan Prioritas Ekspresi
- DISTINCT vs GROUP BY untuk Keunikan
- Ekspresi CASE dalam SELECT