0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【SQL】前処理に使うコードなど

Posted at

複数keywordでの絞込

where likeの多用による、複数keywordでの絞込はperformance低下に繋がるため、以下の記載で複数のkeywordでの絞込を行う(下記の場合、前方一致での絞込

where regexp_like(column_name,'^【keyword】|^【keyword】|^【keyword】')

case式

値が「1か2か3」だったら1を入れる
値が「4か5か6」だったら0を入れる
それ以外だったらnullとする

case
  when column_name in (1,2,3) then 1
  when column_name in (4,5,6) then 0
  else null
  end as column_name

data型の変換

整数に変換

cast(column_name as int)

nullを埋める

指定した文字列(や数値、0等)でnullが埋められる

coalesce(column_name,【代わりに埋めたい文字列】)

文字列の加工

分割

下記により出力されるのは配列なので、分割後のものを使用したい場合は、

split(column_name,'【分割のkeyとしたい文字列】')

下記のように配列の中身を取り出す(sqlの場合、配列は0からではなく、1からのstart

select column_name[1]

結合

2つのcolumnを結合したcolumnを作成

concat(column_name,column_name)

queryによるtableの作成と削除(≒更新

【table_name】が既に存在していたら、一旦削除
その上で、【table_name】を【sub query】を実行する形で作成(≒tableを更新
これらをbatchで定期的に実行する等

drop table if exists table_name;
create table if not exists table_name as

with (以下【sub query】)

group byの注意点

大文字/小文字で別々にgroupingされてしまうので、以下のように大文字変換か小文字変換を行い、統一してからgroup byをすると確実

upper(column_name)
lower(column_name)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?