SQL で特定のカラムを除いて select する方法ってありませんか？


よく重複除去するのに

[code]

    WITH tmp AS (
     SELECT *, 
       ROW_NUMBER() OVER (PARTITION BY uniq_column ORDER BY last_modified desc AS rn
     FROM table
    )
    
    SELECT <rn 以外のカラムがずらっと並ぶ> 
    FROM tmp
    WHERE rn = 1
    
[/code]

みたいな書き方するのですが  
カラム数が多いと記述が長くなってしまうのと  
カラムを追加する時に 最後の SELECT 文と２箇所カラム名を追加しなければいけないのでDRYじゃないです  
`SELECT * except rn FROM ...`  
みたいな書き方ってあったりしませんか？




残念ながら存在しません  
ガッと列名を全部コピペするのがSQL風ですね  
SQLはあまりプログラミング的な言語でないので、どうしてもそういう感じになってしまいます

記述があまりに面倒なようなら、SQL では * で取ってしまって、受け側で捨てるのもありだと思います  
ただ、列名は明記したほうが振る舞いが明確化されて、不具合などが減ると思います




残念ながら存在しません  
ガッと列名を全部コピペするのがSQL風ですね  
SQLはあまりプログラミング的な言語でないので、どうしてもそういう感じになってしまいます

記述があまりに面倒なようなら、SQL では * で取ってしまって、受け側で捨てるのもありだと思います  
ただ、列名は明記したほうが振る舞いが明確化されて、不具合などが減ると思います

