布林值 (Boolean) 類型 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

布林值 (Boolean) 類型

使用 BOOLEAN 資料類型,在單位元組資料欄中儲存 true 和 false 值。下表說明 Boolean 值的三種可能狀態,以及導致狀態的字面值。無論輸入的字串為何,Boolean 資料欄都會分別將「t」和「f」儲存和輸出為 true 與 false。

State 有效的常值 儲存
True TRUE 't' 'true' 'y' 'yes' '1' 1 位元組
False FALSE 'f' 'false' 'n' 'no' '0' 1 位元組
不明 NULL 1 位元組

您只可以透過 WHERE 子句中述詞的形式使用 IS 比較來檢查布林值。您無法使用 IS 比較來搭配 SELECT 清單中的布林值。

範例

您可以使用 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 陳述式中未指定預設值 (truefalse),則插入預設值代表插入 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

下列範例會成功,因為它在 SELECT 清單中使用等於比較 ( = ) 而非 IS 比較。

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 |