Apakah mungkin untuk melakukan sesuatu yang mirip dengan yang berikut ini di SQL Server 2012?
IF EXISTS (
WITH DATA AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY column ORDER BY Column) AS rn
FROM table )
SELECT *
FROM DATA
WHERE rn = 2 )
BEGIN
...
END
Saya mencoba menggunakan sintaks ini dan menerima kesalahan. Jika ini tidak memungkinkan, apakah menggunakan tabel temp akan menjadi cara terbaik untuk mencapai ini?
Dari BOL - Pedoman untuk Membuat dan Menggunakan Ekspresi Common Table , Anda tidak bisa. Yang terbaik adalah menggunakan tabel temp .
—
Kin Shah
Mengapa tidak
—
ypercubeᵀᴹ
IF EXISTS (SELECT * FROM table)
?
@ ypercube Contoh yang saya berikan bukan replika yang tepat dari pertanyaan yang saya kerjakan - melihat apakah tabel memiliki baris tidak akan cukup dalam apa yang saya coba. Saya kira itu akan lebih akurat untuk mengatakan
—
Weston Sankey
WHERE rn = 2
Maka Anda juga bisa mengatakan
—
Aaron Bertrand
IF EXISTS (SELECT column FROM dbo.table GROUP BY column HAVING COUNT(*)>1)