Cara menggunakan Kemas kini dalam pernyataan Kes dengan lajur sebagai alias
P粉214089349
2023-09-05 17:54:59
<p>Saya mempunyai jadual yang dipanggil sales_data dengan 3 lajur (id int, udf varchar(20), date_of_sale datetime).
Saya cuba mencari hari bekerja bagi lajur date_of_sale dengan melaraskan masa kepada 6 jam, kini saya perlu mengemas kini lajur udf ke hari bekerja bersamaan dengan date_of_sale. Saya mempunyai idea untuk pertanyaan pilihan, tetapi bagaimanakah cara saya mengemas kini lajur udf? </p>
<pre class="brush:php;toolbar:false;">pilih hari bekerja(submasa(s.date_of_sale ,'6:0:0')) sebagai putdata,
KES
WHEN hari kerja(submasa(s.date_of_sale ,'6:0:0'))=0 THEN 'Ahad'
WHEN hari kerja(submasa(s.tarikh_jualan ,'6:0:0'))=1 MAKA 'Isnin'
WHEN weekday(subtime(s.date_of_sale ,'6:0:0'))=2 THEN 'Selasa'
WHEN weekday(subtime(s.date_of_sale ,'6:0:0'))=3 THEN 'Rabu'
WHEN weekday(subtime(s.date_of_sale ,'6:0:0'))=4 THEN 'Khamis'
BILA hari minggu(submasa(s.tarikh_jualan ,'6:0:0'))=5 MAKA 'Jumaat'
BILA hari minggu(submasa(s.tarikh_jualan ,'6:0:0'))=6 MAKA 'Sabtu'
TAMAT sebagai udf
daripada data_jualan s;</pre></p>
Tambah lajur terhasil (https://dev.mysql.com/doc/refman/8.0/en/create-table-generated-columns.html) untuk memudahkan pemprosesan dan mengelakkan ketidakkonsistenan data:
Lihat demo: https://dbfiddle.uk/2d5iIvBv
(Saya tidak mendapat hari bekerja yang sama, mungkin tempat itu?)
Pertanyaan anda di atas hampir selesai. Anda hanya perlu menambah penyata kemas kini.
Pertanyaan di bawah sepatutnya sesuai untuk anda.