初めに
Snowflake
こんにちは、初心者です。
先日、SnowflakeのユーザーグループであるSnowVillage内のRookiesCampで行われている「初心者向け勉強会」というウェビナーに初参加しました。
ウェビナーそのものの話じゃなくて、その中で知ったことがあり書きました。
説明の中でこんなSQLが出てきて
table [テーブル名] order by [列名];
「なにこのSQL」ってなったわけです。
実行結果は全件取得なんです。
つまり下記のSQLと同じ。
select * from [テーブル名] order by [列名];
「select * from」を「table」に置き換えられるってことのようです。
知らんかった。
これはSnowflakeの方言?
なお、試してみた結果、ビューの場合もtableと書くようです。
--✕
view [ビュー名];
--〇
table [ビュー名];
「table型で返してね」という意味だと思います。
マテリアライズドビューも同様です
実験
他のDB製品でも自分が触れる範囲で試してみました。
PostgreSQL
Snowflakeと同じように
table [テーブル名] order by [列名];
で結果返ってきたんですけどー。
Postgreよ、お前もか。
いきなり予想外でした。
ひょっとして方言じゃなくて標準?みんな対応してるの?
これからの検証が不安。
Oracle
今まで一番触っているOracleはエラー。
よかった、標準じゃなかったんだ。
結構触ってきたと思ってるのに知らなかったんだったらショック死するとこだった。
昔のSQLポケットリファレンスみたいな本にこんなSELECTの置き換え、載ってなかったもんね。(たぶん)
SQLServer
昔ちょっと触っていたSQLServerもエラー。
SQLite3
この確認のためのわざわざインストールした。
エラー。
Access
table [テーブル名] order by [列名];
Accessもで結果が返ってきた!
SQLServerと同じマイクロソフト製品なのに結果が違うとは。
まとめ
table対応 | |
---|---|
Snowflake | 〇 |
PostgreSQL | 〇 |
Oralce | ✕ |
SQLServer | ✕ |
SQLite | ✕ |
Access | 〇 |
という結果になりました。
まさかの半々です。
知らなかった機能が意外と各DBで実装されてるんですね。