xiaoniu’s blog

主なエンジニア技術、勉強の話

SQL

SQL文ソートした後の2番目だけ取得

SQL

SELECT base_date FROM date_info WHERE location = 'somewhere' ORDER BY base_date DESC OFFSET 1 ROWS -- OFFSET はSQL2012+からの機能 FETCH NEXT 1 ROWS ONLY 上記のSQL文はbase_dateより降順の2番目のデータを取得する

Where句にWHEN,CASEの書き方

SQL

SELECT * FROM table_1 A INNER JOIN table_2 B ON A.column_1 = B.column_1 AND B.column_2 CASE WHEN A.column_3 = *** THEN A.column_2 ELSE A.column_3 END

SQL文にNOT EXISTについて

SQL

サブクエリに非存在/存在の条件を付けます。 例:table_1にコラム id、name -id -name 1 Jone 2 Tom 3 Jay table_2にコラム id、name、table_1_id -id -name -table_1_id 1 class_a 1 2 class_b 3 クラスに所属していない人を探す: SELECT * FROM table_1 W…

SQL文 月の最終日、開始日を取得

SQL

月の開始日を取得するSQL文 SELECT DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0) 月の最終日を取得するメソッド EOMONTH(start_date, [month_to_add]) start_dateの月の最終日を返します、month_to_addは整数、start_dateの月数に加減できます。

SQL文にパラメーターを設定

SQL

SQL文にパラメータを埋込します EXEC sp_executesql N' SELECT * FROM [Table_a] WHERE [target_column_0] = @0 AND [target_column_1] = @1 ', N'@0 nvarchar(4000), @1 date', -- パラメータの型 @0 = N'something', @1 = '2020-01-02' --パラメータの値