Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengubah Nilai Medan Ditakrifkan Pengguna dalam SQL?

Bagaimanakah Saya Boleh Mengubah Nilai Medan Ditakrifkan Pengguna dalam SQL?

Susan Sarandon
Lepaskan: 2025-01-05 02:10:40
asal
200 orang telah melayarinya

How Can I Transpose User-Defined Field Values in SQL?

Teknik Transposing SQL untuk Nilai Medan Ditakrifkan Pengguna

Dalam SQL, anda mungkin menghadapi situasi di mana anda perlu menukar data yang disimpan dalam baris ke membentuk lajur. Satu contoh sedemikian ialah apabila anda mempunyai jadual seperti yang diterangkan di bawah:

================================================
| Id | UserId | FieldName     | FieldValue     |
=====+========+===============+================|
| 1  | 100    | Username      | John Doe       |
|----+--------+---------------+----------------|
| 2  | 100    | Password      | pass123!       |
|----+--------+---------------+----------------|
| 3  | 102    | Username      | Jane           |
|----+--------+---------------+----------------|
| 4  | 102    | Password      | $ecret         |
|----+--------+---------------+----------------|
| 5  | 102    | Email Address | [email protected] |
------------------------------------------------
Salin selepas log masuk

Untuk menukar data ini ke dalam format yang mana FieldNames menjadi pengepala lajur dan FieldValues ​​membentuk data baris yang sepadan, anda boleh memanfaatkan berikut pertanyaan SQL:

  SELECT t.userid
         MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username,
         MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password,
         MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email
    FROM TABLE t
GROUP BY t.userid
Salin selepas log masuk

Walau bagaimanapun, untuk pendekatan ini berfungsi dengan berkesan, anda perlu mentakrifkan pernyataan CASE untuk setiap FieldName yang dijangkakan nilai. Untuk meningkatkan fleksibiliti, pertimbangkan untuk melaksanakan sintaks Penyata Disediakan (SQL dinamik) MySQL untuk menjana pernyataan CASE ini secara dinamik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Nilai Medan Ditakrifkan Pengguna dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan