HAVING句1

SQL

Having句は結構自由に書ける。 ■以下のテーブルから、全教科を受けているstudent_idを抽出する。 SELECT student_id FROM TestScore GROUP BY student_id HAVING ( SELECT COUNT(*) FROM ( SELECT DISTINCT subject FROM TestScore )A ) = SUM(CASE WHEN stu…

WHEREにCASE2

SQL

■算数で80点以上、国語50点以上両方を満たす生徒を抽出 どれも結果は同じ!

WITH句

SQL

■WITH句にて、一時テーブルのようなものが作れる。 WITH test AS( SELECT * FROM EnumMaster WHERE MasterType = 'Status') SELECT test.mastertext,a.* FROM agreement AS a INNER JOIN test ON a.AgmtStatus = test .MasterValue

CASE句参考

SQL

(*)参考 qiita.com mickindex.sakura.ne.jp

正規表現

■何でもいい一文字 「.」 「..」なら二文字 ■複数の中からどれか一文字 [〇〇〇] [^〇〇〇]だと、それ以外 ■特殊文字 \d:数字一文字を示す。degitの意味。 \w:英数一文字を示す。wordの意味 \s:空白一文字を示す。spaceの意味 \t:タブを示す。tabの意味 …

EXEC句でLocal一時テーブルを作ると、同一ストアド内でも参照できない

SQL

Exec句でLocal一時(#Table)テーブルを作ると、 そのExec句と同じストアド内でも、そのテーブルを参照できません。 Global一時テーブル(##Table)ならOK。

AppConfig例

VB

<connectionStrings> <add name="AACollateralConnectionString" connectionString="Data Source=KAGAWA-A-PC\SQLEXPRESS;Initial Catalog=New_AACollateral;Persist Security Info=True;User ID=QrF073cwLu+aA5DB34y7Ug==;Password=CvdTA/EAq30VUo39VUHp0g==;" providerName="System.Data.SqlClient" /> </add></connectionstrings>

集約エラーハンドルを持つエントリポイント

VB

Imports System.Security.Cryptography.X509CertificatesImports Microsoft.VisualBasic.CompilerServices Module startUp ''' <summary> ''' UserContext ''' </summary> Public usContext As New UserContext <STAThread()> Sub Main() ' UIスレッドの集約例外ハンドラ AddHandler Applicat</stathread()>…

LINQ チート

Public Sub A() Dim list = New List(Of Integer) From {1, 84, 95, 95, 40, 5, 6} Dim test = list.Select(AddressOf adder) Console.WriteLine("First: " + list.First().ToString) Console.WriteLine("Last: " + list.Last().ToString) Console.WriteLine…

TUtils

VB

Imports System.Reflection Public Class TUtils(Of T As New) ''' <summary> ''' TClassの各Propertyにセットされた属性情報から、ファイル出力に関するパラメータを取得し ''' パラメータ値に応じて出力対象項目のフィルタリング、ヘッダ名の取得、出力項目の順序も</summary>…

DataUtils

VB

Imports System.Data.SqlClientImports System.Reflection Module DataUtils ''' <summary> ''' Statusのマスタ値をデータテーブルで取得 ''' </summary> ''' <param name="AddBlankRow">先頭にブランク行を追加する場合True</param> ''' <returns></returns> Public Function GetEnumStatus(ByVal Optional AddBlankRow As Boolean = …

インターフェース:ITAESSet

VB

Public Interface ITAESSet Property DecryptedText As String Property EncryptedText As String Property Key As String Property Iv As String Property Salt As String Property KeyCreatePassPharse As StringEnd Interface

SecurityUtil

VB

Imports System.IOImports System.Security.CryptographyPublic Class SecurityUtils '------------------------------------------------------------------------ '---AESについて '--------------------------------------------------------------------…

SQLServerのバックアップリストアについて

SQL

Sql server のバックアップとリストアの基礎 from Masayuki Ozawa www.slideshare.net

Window関数1

SQL

行同士の比較やサマリが必要な場合や、 単独列でサマリ値などが必要な場合に使おう。 qiita.com ■以下のテーブルに、色んなWindow関数を当ててみる ■各行にScoreの合計を単純にセット SELECT No,student_id, subject, score, sum(score) over()FROM TestScor…

ストアドの色々

SQL

■引数を生成 ・Create句の直後に記述 CREATE PROCEDURE [dbo].spStudy2 @Master NVARCHAR(100)= NULL '引数 ,@ReturnValue NVARCHAR(100) OUTPUT '戻り値AS ■IF文 ・ELSE IF句はそもそもない ・IF文内の適用範囲(IFはどこまでか、ELSE IFはどこまでか)はBEGI…

ストアドの例

SQL

ALTER PROCEDURE [dbo].spStudy2 /* 引数はストアド名の後、AS句前に宣言 */ @Master NVARCHAR(100)= NULL /* OUTPUTを付与した引数は戻り値をアプリに返せる */ ,@ReturnValue NVARCHAR(100) OUTPUT AS /* IF分岐 */ /* ELSEIF句はない。 ELSE IF */ /* 各…

行列入れ替え

SQL

(*)数値項目を合算して列に~ならPIVOT句とかを使えば良いです。 以下は、非数値項目の例 ⇒https://yyuuiikk.org/entry/590 ■以下の様なテーブルの行列を入れ替える 〇パターン1 ・キー(AgmtId)だけを抽出したテーブル(AgmtFamily A)に対して、 キーと各変換…

直積2 単一テーブルでのCROSS JOIN

SQL

■直積は、単一テーブルの各列間でも取得することができる。 meetingsテーブル 上記テーブルから、meetingとpersonの直積を求める SELECT DISTINCT m1.meeting,m2.person FROM meetings m1 CROSS JOIN meetings m2 本来の直積はDistinct無しで以下の様なデー…

直積(CROSS JOIN

■データ間の全ての組み合わせを取得することを直積という。 users items(owner_idとusers.idは連結キーとする) 上記の様なテーブルがある場合に、両テーブル間の全組み合わせを取る。・SELECT U.*,I.* FROM users u CROSS JOIN items I 通常、LEFT OUTER JOI…

Exists句

SQL

■Exsists句は、INの様に ・条件に一致するもの ・条件に一致しないもの といったデータを高速に抽出することができる。 ex1) ①上記データから、全教科50点以上のStudent‗idを抽出する SELECT DISTINCT T1.student_id FROM TestScore AS T1 WHERE NOT EXISTS(…

文字列長を正確に取得する

VB

■string.Lengthで文字列長を取得はできるが、一部の特殊な文字などは 正確に取得することができない。 ex) 𩸽:ほっけは一文字だが、Lengthなど2文字になってしまう。 正確に取得するには、StringInfoを使用する。 Dim si As New StringInfo(str) Return si.L…

トランザクションログの切り捨て、圧縮

SQL

USE [対象のDB] DBCC SHRINKFILE('論理ログファイル名', 0) ■初期ファイルサイズ(例:200MB)と自動拡張サイズ(例:100MB毎)を変更 ALTER DATABASE [対象のDB]MODIFY FILE (NAME=論理ログファイル名,SIZE=200MB,MAXSIZE=UNLIMITED,FILEGROWTH=100MB); social.…

getter/setterを使うなとは

単純に絶対にgetter/setterを設けるなということではなく、 必要な情報を持つクラス自体に必要な処理をさせ、メソッド経由でその値を受けるべき。getterを呼び出すような処理を実装している場合、その処理は本来呼び出されるクラス側で実装されるべきだとい…

ジェネリックなインターフェース

VB

■定義 Public Interface ITDList(Of T) Function DataLists() As List(Of T) End Interface ■使用例 Public Class TDUserInfo Inherits BaseDAO Implements ITDCount, ITDList(Of TUserInfo) Public Function DataLists() As List(Of TUserInfo) Implements …

Nullableに対するリフレクション

Nullableの型に対して型情報を取得しようとすると、"Nullable"が返ってきてしまう。元の型名を取得するには、Nullable.GetUnderlyingTypeを使用する。 例) ・あるproperty:propがDatetime?だったとする。 ⇒Nullable.GetUnderlyingType(prop.PropertyType).n…

NUll判定

VB

■Null(Nothing)でない場合に、そのオブジェクトに対して処理を行うといった場合の書き方 ・昔 If myObj Is Nothing Then ’Nothingじゃない場合の処理 myobj.test = "test" End If ・今 Null条件演算子を使って以下の様に簡潔に書ける myobj?.test = "test" m…

Visual Studioで検索時、Designer等を検索対象外にする。

VB

①Shift + Ctrl + Fで以下のウィンドを表示 ②ファイルの種類に、以下の文字列を入力 !*\bin\*;!*\obj\*;!*\.*;!*.Designer.vb;!*.resx;

多次元配列の要素数を取得する。

■多次元配列の各要素の数は、GetLength()で取得可能。 ・配列変数.GetLength(x):xには要素を取得したい次元を指定

Disposeの実装

VB

#Region "IDisposable Support" Private disposedValue As Boolean = False ' 重複する呼び出しを検出するには ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not disposedValue Then If disposing Then ' TODO: マネージ状態…