Saya ingin mengemas kini keseluruhan lajur e-mel menggunakan format indeks baris + email@gmail.com.
Ini ialah data dalam jadual saya
id | E-mel |
---|---|
12 | abc@gmail.com |
23 | pqr@gmail.com |
Ini adalah output yang saya mahu
id | E-mel |
---|---|
12 | 1email@gmail.com |
23 | 2email@gmail.com |
Saya mencuba pertanyaan di bawah tetapi tidak mendapat output yang saya jangkakan.
;dengan C sebagai ( pilih e-mel,row_number() over(order by id asc) sebagai rowid daripada cus ) kemas kini C tetapkan e-mel = rowid+'email@gmail.com'
Itu bukan hanya 3 baris, saya mempunyai lebih 500 baris dalam jadual
Ini nampaknya berkesan, tetapi saya percaya ada penyelesaian yang lebih elegan yang tidak memerlukan penggunaan join...
Ujian Penuh
Mungkin ini yang anda mahu lakukan:
Sambungkan jadual (
cus
)与C
的cte
) yang anda ingin kemas kini, dan kemudian kemas kini dengan sewajarnya.Berikut ialah demo
@QisM memang bukan unik untuk
email
不唯一时的语法提出了疑虑,由于OP没有提到,我同意如果email
, ini bukan penyelesaiannya. Jadi saya mengubah suai sedikit sintaks:Semak sekarang
cte
带有id
,并且在JOIN C ON ..
条件中,我添加了匹配id
. Selepas ujian,ini akan membetulkan isujika e-mel itu bukan unik.