LoginSignup
0
0

[Power BI] Power Queryの『型』を探る (4) null

Last updated at Posted at 2022-11-03

3. logical (論理型)

 logical は、 true と false のブール値を格納します。

logical
Logical.FromText("true")  // true
Logical.FromText("false") // false
Logical.From(0)  // false
Logical.From(1)  // true
Logical.From(-1) // true

4. null 何も示さないもの

 null型は、nullを保持する型です。

 nullにはざっくりと以下の意味があります。

  1. 有効でない
  2. 存在しない
  3. 保存されていない
  4. 利用できない

[1] ANSI/X3/SPARC Study Group on Data Base Management Systems, Interim Report, ANSI, February 1975, pp. IV-28~IV-29.

 nullは値がないこと、あるいは未知の値であることを表します。この哲学あるいは論理学の問題は、言語設計者がnullを許容した場合の動作を様々な可能な動作の中から選択、あるいは再定義しなければなりません。nullを含む項目の演算には、その結果がどのようになるか、予め知っておく必要があります。

nullの比較
null = null  // true
null <> null // false
0 = null     // false
null <> 0    // true

 以下のように、nullを含む演算は、多くの場合 null になってしまうことに注意してください。

nullの論理演算
null and null  // null
null and true  // null
null and false // false
null or null   // null
null or true   // true
null or false  // null
1 > null     // null
1 >= null    // null
null < null  // null
null <= null // null
10 + null    // null
null - 16.3  // null
null * 25    // null
8 / null     // null
"abc" & null & "def" // null

 nullはいわば虚無のように振る舞います。虚無に触れると値は粉砕され無意味になってしまいます。例えば、 nullを含む項目を文字列として結合する場合、戻り値はnullになってしまいますので、特に注意が必要です。 事前に、nullが発生する項目を空白に置き換える作業が必要です。

 nullを許容する型は、nullable を指定します。

nullを許容する型
type null
type any
type nullable <T> 
nullを許容しない型
type <T>
type anynonnull
Type.NonNullable(<T>)

 関数の引数や戻り値の型にnullを許容するかどうかを明示することができます。
 テーブルの項目の型は常にnull許容となり、許容しない指定はできません。

関連記事

  1. [Power BI] Power Queryの『型』を探る (1) number
  2. [Power BI] Power Queryの『型』を探る (2) text, temporal falimy
  3. [Power BI] Power Queryの『型』を探る (3) number 蛇足
  4. [Power BI] Power Queryの『型』を探る (4) null
  5. [Power BI] Power Queryの『型』を探る (5) カスタム型
  6. Power BIデータモデルの型システム (1) 数値型、日付/時刻型
  7. Power BIデータモデルの型システム (2) テキスト型、論理型
0
0
1

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