Yabu.log

ITなどの雑記

早速webツールっぽいものを作ってみた

昨日日記で書いた

自分も作ってみたいものが2,3ある。 日頃よくやってる置換とかはwebツール化して公開するのも良いかもしれない。

yuyubu.hatenablog.com

のことですが、早速作ってみた。

https://yuyabu.github.io/OrderByWithCaseExpressionGenerator/

github.com

元ネタは以前Qiitaに上げたこれ。

qiita.com

ひとまずはhelloworld的なものを作るつもりだったが、勢いで30分ほどで作ってしまった。 インデントすらされてないし、画面レイアウトの設計に全くカロリーを割いてていないため、使いにくいことこの上ないが、 ひとまず公開してみる。

他人がサービスをつくったとかアプリを作ったみたいな記事を見るたびに憧れるが、 自分が作ると細かいところに時間を使いすぎて、公開はおろか、完成までもたどり着かない。

今だと、TDDで作らなきゃとかCIもやらないとね。とか思って重い腰が更に重くなってしまうため、 ひとまず公開までにこぎつけるまでにカロリーが最小になるように決めて作業をした。 変数名とか全部適当だし、綴のチェックもしていない。 またjavascriptはほとんど書いたことがないため、わからないところは基本googleだよりで作っている。*1

レイアウトやリファクタリングは明日以降ちょっとずつやっていこうと思います。

日記を書いてて思ったけど、order by 対象のカラムがchar型だったら動かないな。。。。

PS. 適当なエディタがなかったので4年前に使い方を忘れたvimで書いた。 保存、終了やdd、pくらいしか覚えていない ビジュアルモードとかいうのがあったような・・・うーん思い出せない。

追記: ひとまず常にシングルクォーテーションで囲むことでchar型に対応した。 oracleの場合、charとnumber型を比較しようとするとchar型の方にtonumber()を適応するので、 この改修でnumber型の場合も一応使える。

ウソです(ヨ(* ´∀`)E)

case式では暗黙の型変換が発動しないようです。

単純CASE式では、exprおよびすべてのcomparison_expr値は、同じデータ型(CHAR、VARCHAR2、NCHAR、NVARCHAR2、NUMBER、BINARY_FLOATまたはBINARY_DOUBLE)であるか、またはすべて数値データ型である必要があります。

CASE式

はぁ.今日も会社あるのに徹夜でなにやってんだろう。

*1:専門のひとからすれば酷いコードになってしまっているとおもう。