アカウント名:
パスワード:
PostgreSQLって好かれてるんですね。仕事では好きなDBを使えるとは限らないってことで・・・SQLserverに今日もがっかりさせられました。Oracle,MySQL,PostgreSQLを使ってきましたが、SQLserverを使うと、今まで当たり前だと思っていたことが、当たり前じゃなくて残念に感じてしまいます。SQLserver2008ですけどね。2012になったらもっとよくなるって?そんな言葉には騙されない!・・・けど自分以外はAccessくらいしか触れない人しかいない会社なので、SQLserverが便利なんですって。
Oracle,MySQL,PostgreSQLを使ってきましたが、SQLserverを使うと、今まで当たり前だと思っていたことが、当たり前じゃなくて残念に感じてしまいます。SQLserver2008ですけどね。
2chとかに良くいるよね、こういう人全くもって何ひとつ分かってない癖にしったかで語る人こういうこと書いてれば「この人凄い」とでも思われると考えてるんだろうね傍から見たら馬鹿丸出しなんだけど、気づいてないんだろうな
とりあえずそのSQL Serverだけができない、当たり前じゃないことってなんなの?そこから聞こうか?
> 2chとかに良くいるよね、こういう人> 全くもって何ひとつ分かってない癖にしったかで語る人> こういうこと書いてれば「この人凄い」とでも思われると考えてるんだろうね> 傍から見たら馬鹿丸出しなんだけど、気づいてないんだろうな
自己紹介ですか?
ちゃんと書いたじゃん「当たり前だと思っていた」ことが「当たり前じゃなかった」って。これまで使ったデータベースでは無意識にやってくれてたんだなと感心したですよ。SQLserverはそれはそれですごいと思いますよ?英数字は全角半角大文字小文字気にせず検索できるとかね意識させることも出来るのは解ったし、こんなことを出来るのはすごいと思うけど、自分の覚えてきたこととギャップがあってね。
で、何が残念なのかを教えてもらえませんか?自分の場合、Oracleに泣かされることの方が多いので。
たとえばselect sum( aaa + bbb ) from tableとselect sum( aaa ) + sum( bbb ) from tableの結果が、nullを含んでるレコードがあると変わるとか以前書いた「すごい機能」のおかげで他のDBでは区分として違う意味を果たしていたものが同じ扱いになってしまっっていたとかね(英字の大文字/小文字で意味を変えていたところがあって・・まぁ対応は出来たけど)あとなんだっけ・・・最初のコメント書いたときは、これらとは別の残念なことがあった気が・・・日々なにかおきてて、あんまり覚えてない
なんだ。結局、 これ [srad.jp] とか これ [srad.jp] が言ってる通りか。自分の勝手な思い込み通りに動作しないからってこの言い草。本当にがっかりで残念なのは、SQL Serverではなくて貴方の頭の方みたいですよ。
煽りとかでなく、エンジニアには向いてないと思うよ。
そうですよ、思い込みどおりに動かないから残念だと思ったのですが。nullを含む行があった場合、どんな結果になるのが自然だと思いますか?正しく計算できない行を含むなら、エラーを返すべきだと思うし、エラーを返さないなら、同様の結果を得られるべきだと思いますよ。C言語で文字列結合した変数領域にアクセスしてるわけじゃないんだし、nullがあったら何らかのハンドリングがされていいと思いますけどね。
まぁ、そこは私の過度な期待だっただけのようですが。
ごめんなさいSQLserverでは+は算術演算子だけではなく文字列結合の演算子でもあったんですね。私が愚かでした。
NULL値含めて演算とかバグの元なんで設計から見直した方が。対処療法ならCOALESCE付けるとか。例:select sum( coalesce( aaa, 0 ) + coalesce( bbb, 0 )) from table
ちなみに、値が変わるほうが当たり前です。だって演算の意味が違うもの。# OracleだったらNVL付けるから気づいてなかったって事じゃないよね?
Oracleでも大文字小文字絡みはNLS_COMPで結果が変わるんだから実行環境から注意しないとダメよ?# しつこい様だが設計から見直したほうが。
さすがにそれはSUMする対象の列がNOT NULLされていない設計に切れるべきなんじゃ。そういった設計を前提で「当たり前だと思っていた」と思っていたのなら、そちらの考え方を直した方がいい。
昔Oracle一辺倒だった頃は、同じようにSQL Serverってクソだなと思っていたけれど、使い続けていると、それはそれで良いところも見えてくるよ。さくっと適当に作っても割といい感じに動いてくれるとか、教育コストが低いので管理が任せやすいとか。
|英数字は全角半角大文字小文字気にせず検索できるとかね意味解ってるのか?
ごめん、書き方悪かったねたとえば、英小文字で検索しても英大文字が検索結果に乗ってくるとか、そういう意味で書いてました。全角英字で検索しても、文字コード判別に何か問題があって検索できないとかそんなことではないです。
SQL文のwhere区の中でaaa = bbb COLLATE Japanese_CS_AS_KS_WSとか書くか、データーベースのデフォルトの動作を変えるとかすれば済む問題なのはわかってるけど
> 「当たり前だと思っていた」ことが「当たり前じゃなかった」って。
それを具体的に書けよってのが先のACのコメントなんじゃないの?お母さんじゃないからさすがにそれじゃ分からないよ。SQLの文法の違いとか、T-SQL vs PL/SQLとか、チューニング項目の違いとか、トランザクションの扱いとかマテビューの扱いとか、色々あるじゃないか。
SQLServerががっかりなのはなんとなくわかるが>英数字は全角半角大文字小文字気にせず検索できるとかねこんなことでがっかりはしないw なのでAC氏の言うことも共感せざるを得ない。馬鹿丸出しとまでは思わないが、違いが分かってないんじゃない?って言われても仕方ないと思うよ。
個人的にはSQLServerはデータの保持方法が画一的な型なのが文字コードを考えないなど便利な反面、設定忘れによる罠にハマることが多く辟易したりします。GUIで設定するのめんどくさいんだよ!!
あぁちがうがっかりしたわけじゃないのか、失礼。てかそんな仕様なのかw
最近だとPowerShell使ってコマンドラインやスクリプトで設定ってできませんかね?(完全に想像で言っています)
MSDNにSQL Server PowerShell [microsoft.com]という紹介が載ってました。
SQL Server 2012 supports Windows PowerShell
とか
The SQL Server 2012 PowerShell components can be used to manage instances of SQL Server 2000 or later.
というわけでスジの良い想像発言で慧眼に敬服。
要は、ORACLEの当たり前っていいたいいんだ。それなら、そうと書けば、わかりやすいのに。
ORACLE以外は対応できませんってことね。
相手を煽っておいて相手から情報を引き出して自分で調べる労力をゼロにする、よくあるけど見事な手法ですな。というわけで私もおこぼれに期待。
相手を煽って情報が引き出せると思うその思考回路が理解できん。
「煽って」じゃないけど、「わざと間違ったことを言って相手に訂正させることで、こちらが欲しい情報を引き出す」という手法は、シャーロック・ホームズがよく使ってます。
# 「四つの署名」とか「銀星号事件」とか「ライゲートの大地主」とか、# その他いろいろ。
もっとも端的で簡単な例だと以下のようになりますかね。
男「100万円も盗みやがって」泥「そんなに盗んでない!!」男「なんで知ってるんだ?」泥「ぐぬぬ」
相手から情報を引き出すために、なぜ煽る必要があるのでしょうか。相手が情報を隠蔽しようとしているのならともかく。情報が知りたいのであれば、普通に訊いて普通に教えて貰ったら良いと思います。
IDコメントに対してACで煽るような、こんなやり方を「見事な手法」なんて褒め称えるのはさすがにおかしい。
解釈によるんでしょうが、私にはただの皮肉だと読めましたよ。とても褒め称えているようには読めませんでした。
「というわけで私もおこぼれに期待。」という三行目がなかったら私もそう捉えたのですが。褒め称えるという表現はちょっと行き過ぎでしたが、全体を通して読んで、行為を肯定するような印象を受けたのでちょっとイラッとしてしまいました。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
自分も票入れたけど (スコア:1)
PostgreSQLって好かれてるんですね。
仕事では好きなDBを使えるとは限らないってことで・・・
SQLserverに今日もがっかりさせられました。
Oracle,MySQL,PostgreSQLを使ってきましたが、SQLserverを使うと、今まで当たり前だと思っていたことが、当たり前じゃなくて残念に感じてしまいます。
SQLserver2008ですけどね。
2012になったらもっとよくなるって?そんな言葉には騙されない!・・・けど自分以外はAccessくらいしか触れない人しかいない会社なので、SQLserverが便利なんですって。
Re:自分も票入れたけど (スコア:-1)
Oracle,MySQL,PostgreSQLを使ってきましたが、SQLserverを使うと、今まで当たり前だと思っていたことが、当たり前じゃなくて残念に感じてしまいます。
SQLserver2008ですけどね。
2chとかに良くいるよね、こういう人
全くもって何ひとつ分かってない癖にしったかで語る人
こういうこと書いてれば「この人凄い」とでも思われると考えてるんだろうね
傍から見たら馬鹿丸出しなんだけど、気づいてないんだろうな
とりあえずそのSQL Serverだけができない、当たり前じゃないことってなんなの?そこから聞こうか?
Re:自分も票入れたけど (スコア:1)
> 2chとかに良くいるよね、こういう人
> 全くもって何ひとつ分かってない癖にしったかで語る人
> こういうこと書いてれば「この人凄い」とでも思われると考えてるんだろうね
> 傍から見たら馬鹿丸出しなんだけど、気づいてないんだろうな
自己紹介ですか?
Re:自分も票入れたけど (スコア:1)
ちゃんと書いたじゃん
「当たり前だと思っていた」ことが「当たり前じゃなかった」って。
これまで使ったデータベースでは無意識にやってくれてたんだなと感心したですよ。
SQLserverはそれはそれですごいと思いますよ?
英数字は全角半角大文字小文字気にせず検索できるとかね
意識させることも出来るのは解ったし、こんなことを出来るのはすごいと思うけど、自分の覚えてきたこととギャップがあってね。
Re: (スコア:0)
で、何が残念なのかを教えてもらえませんか?
自分の場合、Oracleに泣かされることの方が多いので。
Re:自分も票入れたけど (スコア:1)
たとえば
select sum( aaa + bbb ) from table
と
select sum( aaa ) + sum( bbb ) from table
の結果が、nullを含んでるレコードがあると変わるとか
以前書いた「すごい機能」のおかげで他のDBでは区分として違う意味を果たしていたものが同じ扱いになってしまっっていたとかね(英字の大文字/小文字で意味を変えていたところがあって・・まぁ対応は出来たけど)
あとなんだっけ・・・
最初のコメント書いたときは、これらとは別の残念なことがあった気が・・・
日々なにかおきてて、あんまり覚えてない
Re: (スコア:0)
なんだ。
結局、 これ [srad.jp] とか これ [srad.jp] が言ってる通りか。
自分の勝手な思い込み通りに動作しないからってこの言い草。
本当にがっかりで残念なのは、SQL Serverではなくて貴方の頭の方みたいですよ。
煽りとかでなく、エンジニアには向いてないと思うよ。
Re:自分も票入れたけど (スコア:1)
そうですよ、思い込みどおりに動かないから残念だと思ったのですが。
nullを含む行があった場合、どんな結果になるのが自然だと思いますか?
正しく計算できない行を含むなら、エラーを返すべきだと思うし、エラーを返さないなら、同様の結果を得られるべきだと思いますよ。
C言語で文字列結合した変数領域にアクセスしてるわけじゃないんだし、nullがあったら何らかのハンドリングがされていいと思いますけどね。
まぁ、そこは私の過度な期待だっただけのようですが。
Re:自分も票入れたけど (スコア:1)
ごめんなさい
SQLserverでは+は算術演算子だけではなく文字列結合の演算子でもあったんですね。
私が愚かでした。
Re: (スコア:0)
NULL値含めて演算とかバグの元なんで設計から見直した方が。
対処療法ならCOALESCE付けるとか。
例:select sum( coalesce( aaa, 0 ) + coalesce( bbb, 0 )) from table
ちなみに、値が変わるほうが当たり前です。
だって演算の意味が違うもの。
# OracleだったらNVL付けるから気づいてなかったって事じゃないよね?
Oracleでも大文字小文字絡みはNLS_COMPで結果が変わるんだから実行環境から注意しないとダメよ?
# しつこい様だが設計から見直したほうが。
Re: (スコア:0)
さすがにそれはSUMする対象の列がNOT NULLされていない設計に切れるべきなんじゃ。
そういった設計を前提で「当たり前だと思っていた」と思っていたのなら、そちらの考え方を直した方がいい。
昔Oracle一辺倒だった頃は、同じようにSQL Serverってクソだなと思っていたけれど、使い続けていると、それはそれで良いところも見えてくるよ。
さくっと適当に作っても割といい感じに動いてくれるとか、教育コストが低いので管理が任せやすいとか。
Re: (スコア:0)
|英数字は全角半角大文字小文字気にせず検索できるとかね
意味解ってるのか?
Re:自分も票入れたけど (スコア:1)
ごめん、書き方悪かったね
たとえば、英小文字で検索しても英大文字が検索結果に乗ってくるとか、そういう意味で書いてました。
全角英字で検索しても、文字コード判別に何か問題があって検索できないとかそんなことではないです。
SQL文のwhere区の中で
aaa = bbb COLLATE Japanese_CS_AS_KS_WS
とか書くか、データーベースのデフォルトの動作を変えるとかすれば済む問題なのはわかってるけど
Re: (スコア:0)
> 「当たり前だと思っていた」ことが「当たり前じゃなかった」って。
それを具体的に書けよってのが先のACのコメントなんじゃないの?
お母さんじゃないからさすがにそれじゃ分からないよ。
SQLの文法の違いとか、T-SQL vs PL/SQLとか、チューニング項目の違いとか、
トランザクションの扱いとかマテビューの扱いとか、色々あるじゃないか。
Re: (スコア:0)
SQLServerががっかりなのはなんとなくわかるが
>英数字は全角半角大文字小文字気にせず検索できるとかね
こんなことでがっかりはしないw なのでAC氏の言うことも共感せざるを得ない。
馬鹿丸出しとまでは思わないが、違いが分かってないんじゃない?って言われても仕方ないと思うよ。
個人的にはSQLServerはデータの保持方法が画一的な型なのが文字コードを考えないなど便利な反面、
設定忘れによる罠にハマることが多く辟易したりします。
GUIで設定するのめんどくさいんだよ!!
Re: (スコア:0)
あぁちがうがっかりしたわけじゃないのか、失礼。てかそんな仕様なのかw
Re: (スコア:0)
最近だとPowerShell使ってコマンドラインやスクリプトで設定ってできませんかね?(完全に想像で言っています)
Re:自分も票入れたけど (スコア:1)
MSDNにSQL Server PowerShell [microsoft.com]という紹介が載ってました。
SQL Server 2012 supports Windows PowerShell
とか
The SQL Server 2012 PowerShell components can be used to manage instances of SQL Server 2000 or later.
というわけでスジの良い想像発言で慧眼に敬服。
Re: (スコア:0)
要は、ORACLEの当たり前っていいたいいんだ。
それなら、そうと書けば、わかりやすいのに。
ORACLE以外は対応できませんってことね。
Re: (スコア:0)
相手を煽っておいて相手から情報を引き出して自分で調べる労力をゼロにする、
よくあるけど見事な手法ですな。
というわけで私もおこぼれに期待。
Re: (スコア:0)
相手を煽って情報が引き出せると思うその思考回路が理解できん。
Re: (スコア:0)
「煽って」じゃないけど、「わざと間違ったことを言って相手に訂正させることで、
こちらが欲しい情報を引き出す」という手法は、シャーロック・ホームズがよく使ってます。
# 「四つの署名」とか「銀星号事件」とか「ライゲートの大地主」とか、
# その他いろいろ。
Re: (スコア:0)
もっとも端的で簡単な例だと以下のようになりますかね。
男「100万円も盗みやがって」
泥「そんなに盗んでない!!」
男「なんで知ってるんだ?」
泥「ぐぬぬ」
Re: (スコア:0)
相手から情報を引き出すために、なぜ煽る必要があるのでしょうか。
相手が情報を隠蔽しようとしているのならともかく。
情報が知りたいのであれば、普通に訊いて普通に教えて貰ったら良いと思います。
IDコメントに対してACで煽るような、こんなやり方を「見事な手法」なんて褒め称えるのはさすがにおかしい。
Re:自分も票入れたけど (スコア:1)
IDコメントに対してACで煽るような、こんなやり方を「見事な手法」なんて褒め称えるのはさすがにおかしい。
解釈によるんでしょうが、私にはただの皮肉だと読めましたよ。とても褒め称えているようには読めませんでした。
Re: (スコア:0)
「というわけで私もおこぼれに期待。」という三行目がなかったら私もそう捉えたのですが。
褒め称えるという表現はちょっと行き過ぎでしたが、
全体を通して読んで、行為を肯定するような印象を受けたのでちょっとイラッとしてしまいました。