Dalam SQL, lajur terkira ialah alat yang berharga untuk melanjutkan model data dalam paparan. Ia membolehkan anda memperoleh nilai baharu daripada lajur sedia ada, membuka kunci kemungkinan untuk analisis dan pembentangan yang lebih canggih. Walau bagaimanapun, apakah yang berlaku apabila anda perlu menggunakan lajur yang dikira itu sendiri sebagai sebahagian daripada pengiraan seterusnya dalam paparan yang sama?
Pertimbangkan senario biasa di mana anda mempunyai jadual dengan lajur berikut:
Dalam salah satu pandangan anda, anda telah mencipta lajur terkira yang dipanggil calccolumn1 dengan hanya menambah LajurA dan LajurB. Sekarang, anda ingin menggunakan calccolumn1 untuk mengira lajur lain, calccolumn2, dengan membahagikan calccolumn1 dengan ColumnC.
Pada mulanya, anda mungkin cuba menulis pertanyaan seperti berikut:
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1 calccolumn1 / ColumnC as calccolumn2
Malangnya, ini tidak akan berfungsi kerana calccolumn2 tidak boleh rujuk calccolumn1 yang dikira sebelum ini secara langsung.
Satu penyelesaian kepada masalah ini ialah menggunakan pertanyaan bersarang:
Select ColumnA, ColumnB, calccolumn1, calccolumn1 / ColumnC as calccolumn2 From ( Select ColumnA, ColumnB, ColumnC, ColumnA + ColumnB As calccolumn1 from t42 );
Kaedah ini mencipta subkueri yang mengira pengiraan1. Pertanyaan utama kemudiannya boleh menggunakan calccolumn1 daripada subquery dalam pengiraannya.
Pilihan lain, jika boleh, adalah dengan hanya mengulang pengiraan untuk calccolumn1 dalam pertanyaan utama:
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1, (ColumnA + ColumnB) / ColumnC As calccolumn2 from t42;
Pendekatan ini mengelakkan kerumitan pertanyaan bersarang, terutamanya apabila pengiraan untuk calccolumn1 agak mudah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Pengiraan Kompleks Menggunakan Lajur Dikira Bersarang dalam Paparan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!