0952NAME IS NULL2019/05/19(日) 15:25:35.49ID:H3ZBKVvV
946です、みなさんありがとうございます
SQLはあってるんですね、よかったです
模範解答は>>949さんが書いてくださってるように、asでテーブルすべてに別名をつけています
テーブル名を指定するときは、別の名前を付けた方がいいんですね
これからやってみます
またよろしくお願いします microsoft sql server 2008
テーブル同士を結合するとき、char型の項目とvarchar型の項目とで
結合するときはconvertで型を合わせる必要があるでしょうか?
この項目はマスタテーブルの主キーなのですが、
伝票テーブルに外部キーとしても存在します。
伝票側の項目には必ずしも値が入るとは限らず、空白も存在します。
そのためマスタテーブル側をchar型に、伝票テーブル側をvarchar型にし、
それぞれで外部結合します。
そもそもなぜ型を合わせないのか
値がないなら、空白じゃなくてNULL入れろよ
まあ世の中にはNULLと空白を区別できない欠陥DBもあるけどなw
NULLと空白を区別できない欠陥DBなんかあるかな
長さゼロの文字列とNULLを区別できない欠陥DBなら知ってるけど
NULL不許可にしてるんでしょ
NULL撲滅委員会とかあるし
0961NAME IS NULL2019/05/22(水) 17:19:04.11ID:3DWUiXWo
>>958
長さがゼロの文字列だったら、それはNULL値。これが本来のデータベースの定義。 かなり昔からそういってるからなぁ
そのうちVarchar3型つくるんじゃって話もある
欠陥であることは分かってるんだけれども
直しちゃうと既存のアプリケーションに甚大な影響が出るんで
直すに直せないんですよー
という気持ちがありありと分かるマニュアルだねえ
つーか null と空文字列を同一視するというのは極めて常識的な挙動であって
標準SQLの方が時代遅れと言えるのでは
ここはもう標準を変更してnullも空文字列も、ついでに空白だけのカラムもすべて同一視するようにすべき
null は is で比較するとかいう無意味な制限も廃止して全て = の比較に統一すべき
とするのはどう?
こんなところでそんなアホ丸出しの提案して
何かが変わると本気で思っているのか
0972NAME IS NULL2019/05/23(木) 00:45:42.35ID:b4XWIHfq
空文字列とNULLが混在して混乱を招いているシステムは多い。
空の文字列とNullを同一視するのが常識とかないと思うんだが
データベースしか触らんやつはそういう常識なの?
ホントOracleはシステム開発者にとってマイナスなことしかしないよね
特定のDBしか触らない奴だとそれが常識だと考えるかも
その場合は、そいつには触らない方が良いと思う
ぬるい質問ばかりで暴れたくなった
相手はどのDBでもよかった
0979NAME IS NULL2019/05/23(木) 02:52:16.93ID:TvO7l/JJ
全項目NOT NULLにして集計処理の手間を減らすことはあるな
CSV/TSVを外部テーブルで使うとNULLが使えないことがほとんどよね
外部結合して片側NULLで引っ掛けるのはよく使うから
NULLの概念自体はあってほしいけど
nullと空文字列が区別できなくて良いってやつは、nullが値ではないって概念が理解出来ないんだろうな
あえて釣られてやるけど、例えば未入力と空文字の入力を区別したいとか普通にあるだろ
セルの値としてはどうかわからないが,テーブル結合後の名テ―ブルの行の属性値としては有りだと思う
整数値カラムでouter joinしたとき
存在しない行の整数値カラムの値は
何になるのでしょうか?
0990NAME IS NULL2019/05/23(木) 20:00:04.84ID:RM6eL1FJ
どうしてオラクルは、ああいう苦しいコメント出しているの?
「sqlなら曖昧でよくね?」っていうけど
連携するプログラム側が困るんよね。それじゃぁ
運用担当がデータ見るだけに使うなら
テキトーでも許されるのかもしれんけど
NULLとかnilとかNoneについては、「値ではない」という説明の仕方より、「あくまでも値だけど、約束事として、(概念的に)値なしと呼びうる状況(の一部)に対応する値として利用できる特殊な値」という説明の仕方の方が誤解を招きにくいんじゃないか。
たとえば、空の配列の長さが0、Noneが1個入った配列の長さが1という言語で「Noneは値ではない」という説明はしづらい気がする。
結局、(概念的に)値なしと呼びうる状況のうち、どれにNULL/nil/Noneを対応させて、どれに空文字列・空配列を対応させるか(undefinedがある言語についてはそれも)というマッピングを整理しておくべきという話かなと思うが。
10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 504日 21時間 44分 19秒