

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# ブール型
<a name="r_Boolean_type"></a>

シングルバイト列に true 値および false 値を格納するには、BOOLEAN データ型を使用します。次の表に、ブール値の取り得る 3 つの状態と、各状態をもたらすリテラル値について説明します。入力文字列に関係なく、ブール列では、true の場合は「t」を、false の場合は「f」を格納および出力します。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_Boolean_type.html)

IS 比較を使用すると、ブール値を WHERE 句の述語としてのみチェックできます。SELECT リストのブール値に対して IS 比較を使用することはできません。

## 例
<a name="r_Boolean_type-examples"></a>

BOOLEAN 列を使用すれば、CUSTOMER テーブル内の顧客ごとに「アクティブ/非アクティブ」状態を格納できます。

```
create table customer(
custid int,
active_flag boolean default true);
```

```
insert into customer values(100, default);
```

```
select * from customer;
custid | active_flag
-------+--------------
   100 | t
```

CREATE TABLE ステートメントにデフォルト値 (`true` または `false`) が指定されていない場合は、デフォルト値を挿入しても Null が挿入されます。

この例では、クエリによって、スポーツは好きだが映画館は好きでないユーザーが USERS テーブルから選択されます。

```
select firstname, lastname, likesports, liketheatre
from users
where likesports is true and liketheatre is false
order by userid limit 10;

firstname |  lastname  | likesports | liketheatre
----------+------------+------------+-------------
Lars      | Ratliff    | t          | f
Mufutau   | Watkins    | t          | f
Scarlett  | Mayer      | t          | f
Shafira   | Glenn      | t          | f
Winifred  | Cherry     | t          | f
Chase     | Lamb       | t          | f
Liberty   | Ellison    | t          | f
Aladdin   | Haney      | t          | f
Tashya    | Michael    | t          | f
Lucian    | Montgomery | t          | f
(10 rows)
```

次の例では、ロックミュージックを好むかどうか不明なユーザーが USERS テーブルから選択されます。

```
select firstname, lastname, likerock
from users
where likerock is unknown
order by userid limit 10;

firstname | lastname | likerock
----------+----------+----------
Rafael    | Taylor   |
Vladimir  | Humphrey |
Barry     | Roy      |
Tamekah   | Juarez   |
Mufutau   | Watkins  |
Naida     | Calderon |
Anika     | Huff     |
Bruce     | Beck     |
Mallory   | Farrell  |
Scarlett  | Mayer    |
(10 rows)
```

次の例では、SELECT リストで IS 比較を使用しているため、エラーが返されます。

```
select firstname, lastname, likerock is true as "check"
from users
order by userid limit 10;

[Amazon](500310) Invalid operation: Not implemented
```

次の例は、IS 比較ではなく SELECT リストで等号比較 ( = ) を使用しているため成功します。

```
select firstname, lastname, likerock = true as "check"
from users
order by userid limit 10;

firstname | lastname  | check
----------+-----------+------
Rafael    | Taylor    |      
Vladimir  | Humphrey  |      
Lars      | Ratliff   | true 
Barry     | Roy       |      
Reagan    | Hodge     | true 
Victor    | Hernandez | true 
Tamekah   | Juarez    |      
Colton    | Roy       | false
Mufutau   | Watkins   |      
Naida     | Calderon  |
```