T-SQL

プレフィックスやサフィックスを取得する

目的とする文字列が「社長」だったとして、「副社長」の「副」*1を取得したり「社長代理」の「代理」*2を取得することを考えます。取得元の文字列には目的とする文字列が必ず含まれるとして、プレフィックスとサフィックスの両方は含まれないとします。下記…

全角スペースを含む文字列でTrimしたい

照合順序(Collation)とは SQLServerには高機能な照合順序(Collation)の設定機能があります。 日本語関連だとこちら、World Wideにはこちら*1にまとめてあります。REPLACE関数だとこんな感じ↓ -- 普通は COLLATE Japanese_CI_ASになってるでしょう SELECT REP…

高速な祝日判定ルーチン

AddinBox(祝日マクロ-1)に有志により17言語も揃ってます。至れり尽くせり。

JOINするときにINNER or LEFT or RIGHT or FULLを省略するとどうなるだっけ?

他人が書いた変更対象のソースコードに SELECT a,b FROM AAA JOIN BBB ON b = a みたいなのが出てきて思考停止。普段は明示的にINNER or LEFT or RIGHT or FULLを書いているのでどの扱いになるのかまるで判らない。調べようとしてもうまくぐぐれない。orzな…

SQLServerで和暦を扱う

MSDNフォーラムのこのスレッドが有用です。↓http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=710925&SiteID=7その中で引用されてる PASSJ 理事の河端さんのコーディング例が感動ものです。↓http://www.sqlpassj.org/bbs/ml_disp.aspx?forum_id=1&…

SQLServerでの文字列の半角文字から全角文字への変換

データの全角半角変換、、 - QA@ITでじゃんぬねっとさんが言及している関数を実装してみました。#この掲示板の議論で、じゃんぬねっとさんはtypoしてますねw #やはり、人間はtypoから逃れられないのかw※超重要:私もtypoしてました。コメントでご指摘い…

SQLServerでのMidB関数

レガシーマイグレーションで帳票の印字内容で全角・半角文字を意識した処理があり、バイト数指定の文字列関数が必要になりました。 http://blogs.sqlpassj.org/yoshihirokawabata/archive/2006/08/03/17581.aspxにLeftB, RightBはあったので、MidB関数の第3…