none
SQL ServerにおけるSQLとACCESSにおけるSQLの違いについて RRS feed

  • 質問

  • いつもお世話になっております。現在ACCESS(2007)のSQLクエリを、SQL Server向けに焼き直しを行っています。その際にお客様より、「ACCESSのMAX関数とMIN関数」は「SQL ServerにおけるSQLのMAX関数とMIN関数」と全く同じものなのかとの質問を受けました。両者実行結果が同じであることはわかるのですが、何か明文化された資料等、ご存知ないでしょうか?例えば、ACCESS-SQLはANSI-SQL97に批准しており、SQL Server-SQLと同じである等。(Microsoftのチャットでの質問を行いましたが、明確な回答はありませんでした。)

    ご確認よろしくお願いします。

    2016年4月1日 1:25

回答

  • SQL ServerのMAX関数の場合、照合順序に依存します。その辺りがAccessとの違いだと思いますが、逆に気にかけられている違いが何かあるのでしょうか?

    (参考)
    照合順序の優先順位 (Transact-SQL)
    https://msdn.microsoft.com/ja-jp/library/ms179886(v=sql.120).aspx


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2016年4月1日 1:38
  • SQL Server のみ OVER 句などが指定できますが、Access から SQL Server へ、という話ですので、Access で使用できる機能、構文のみに限定したという前提で考えれば、以下のように言えるかと思います。

    • 数値の類の型に関しては、数学における最大、最小を求めますので、同一となります。
    • 日付の類の型に関しては、カレンダーにおける前後を求めますので、同一となります。
    • それ以外の型については、先に上がっている照合順序など様々な影響を受けますので、ケースバイケースとしか言いようが無いかと思われます。

    MCITP(Database Developer/Database Administrator)

    2016年4月2日 8:48

すべての返信

  • SQL ServerのMAX関数の場合、照合順序に依存します。その辺りがAccessとの違いだと思いますが、逆に気にかけられている違いが何かあるのでしょうか?

    (参考)
    照合順序の優先順位 (Transact-SQL)
    https://msdn.microsoft.com/ja-jp/library/ms179886(v=sql.120).aspx


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2016年4月1日 1:38
  • ご回答ありがとうございます。特にピンポイントで気にしている事象はなく、漠然とした内容で、「MAX関数、MIN関数は同じなのか」と気にしているようなのです。

    例えば「文字の場合は・・・数値の場合は・・・」と場合分けしたものを用意して説明すれば納得いただけると思うのですが、何か両者SQL(MAX関数、MIN関数)の違いまたは合意点がわかるものがあれば、と思い投稿させて頂きました。

    2016年4月1日 2:09
  • SQL Server のみ OVER 句などが指定できますが、Access から SQL Server へ、という話ですので、Access で使用できる機能、構文のみに限定したという前提で考えれば、以下のように言えるかと思います。

    • 数値の類の型に関しては、数学における最大、最小を求めますので、同一となります。
    • 日付の類の型に関しては、カレンダーにおける前後を求めますので、同一となります。
    • それ以外の型については、先に上がっている照合順序など様々な影響を受けますので、ケースバイケースとしか言いようが無いかと思われます。

    MCITP(Database Developer/Database Administrator)

    2016年4月2日 8:48
  • 返信が遅くなり、大変失礼しました。

    ご回答ありがとうございます。ご教授頂きました内容を踏まえまして対応しました。

    いろいろと勉強になり、誠にありがとうございました。また機会がありましたらよろしくお願いします。

    2016年4月5日 8:13