Bagikan melalui


Values

Nilai adalah data yang dihasilkan dengan mengevaluasi ekspresi. Bagian ini menjelaskan jenis nilai dalam bahasa M. Setiap jenis nilai dikaitkan dengan sintaksis harfiah, sekumpulan nilai yang jenisnya, sekumpulan operator yang ditentukan atas kumpulan nilai tersebut, dan jenis intrinsik yang bertuliskan nilai yang baru dibangun.

Kind Harfiah
Null null
Logis true    false
Number 0    1    -1    1.5    2.3e-5
Waktu #time(09,15,00)
Tanggal #date(2013,02,26)
DateTime #datetime(2013,02,26, 09,15,00)
DateTimeZone #datetimezone(2013,02,26, 09,15,00, 09,00)
Durasi #duration(0,1,30,0)
Teks "hello"
Biner #binary("AQID")
Daftar {1, 2, 3}
Rekaman [ A = 1, B = 2 ]
Table #table({"X","Y"},{{0,1},{1,0}})
Fungsi (x) => x + 1
Jenis type { number }    type table [ A = any, B = text ]

Bagian berikut mencakup setiap jenis nilai secara rinci. Jenis dan jenis askripsi didefinisikan secara resmi dalam Jenis. Nilai fungsi didefinisikan dalam Functions. Bagian berikut mencantumkan operator yang ditentukan untuk setiap jenis nilai dan memberikan contoh. Definisi lengkap semantik operator mengikuti operator.

Null

Nilai null digunakan untuk mewakili tidak adanya nilai, atau nilai status yang tidak ditentukan atau tidak diketahui. Nilai null ditulis menggunakan literal null. Operator berikut didefinisikan untuk nilai null:

Operator Hasil
x > y Lebih dari
x >= y Lebih besar dari atau sama dengan
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x = y Equal
x <> y Tidak sama dengan
x ?? y Coalesce

Jenis null asli nilai adalah jenis nullintrinsik .

Logika

Nilai logis digunakan untuk operasi Boolean memiliki nilai true atau false. Nilai logis ditulis menggunakan literal true dan false. Operator berikut didefinisikan untuk nilai logis:

Operator Hasil
x > y Lebih dari
x >= y Lebih besar dari atau sama dengan
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x = y Equal
x <> y Tidak sama dengan
x or y LOGIS BERSYAR ATAU
x ?? y Coalesce
x and y LOGIS BERSYAR DAN
not x LOGIS NOT

Jenis asli dari kedua nilai logis (true dan false) adalah jenis logicalintrinsik .

Angka

Nilai angka digunakan untuk operasi numerik dan aritmatika. Berikut ini adalah contoh jumlah literal:

3.14  // Fractional number 
-1.5  // Fractional number 
1.0e3 // Fractional number with exponent
123   // Whole number 
1e3   // Whole number with exponent 
0xff  // Whole number in hex (255)

Angka diwakili dengan setidaknya presisi Double (tetapi dapat mempertahankan lebih banyak presisi). Representasi Ganda sejalan dengan standar presisi ganda IEEE 64-bit untuk aritmatika titik float biner yang ditentukan dalam [IEEE 754-2008]. (Representasi ganda memiliki perkiraan rentang dinamis dari 5,0 x 10324 hingga 1,7 x 10308 dengan presisi 15-16 digit.)

Nilai khusus berikut ini juga dianggap sebagai nilai angka :

  • Nol positif dan nol negatif. Dalam kebanyakan situasi, nol positif dan nol negatif berperilaku identik sebagai nilai nol sederhana, tetapi operasi tertentu membedakan antara keduanya.

  • Tak terbatas positif (#infinity) dan tak terbatas negatif (-#infinity). Infinities diproduksi oleh operasi seperti membabungkan angka bukan nol dengan nol. Misalnya, 1.0 / 0.0 menghasilkan tak terbatas positif, dan -1.0 / 0.0 menghasilkan tak terbatas negatif.

  • Nilai Bukan Angka (#nan), sering disingkat NaN. NaN diproduksi oleh operasi floating-point yang tidak valid, seperti membalikkan nol dengan nol.

Operasi matematika biner dilakukan menggunakan Presisi. Presisi menentukan domain tempat operand dibulatkan dan domain tempat operasi dilakukan. Dengan tidak adanya presisi yang ditentukan secara eksplisit, operasi tersebut dilakukan menggunakan Presisi Ganda.

  • Jika hasil operasi matematika terlalu kecil untuk format tujuan, hasil operasi menjadi nol positif atau nol negatif.

  • Jika hasil operasi matematika terlalu besar untuk format tujuan, hasil operasi menjadi tak terbatas positif atau tidak terbatas negatif.

  • Jika operasi matematika tidak valid, hasil operasi menjadi NaN.

  • Jika satu atau kedua operan dari operasi floating-point adalah NaN, hasil operasi menjadi NaN.

Operator berikut didefinisikan untuk nilai angka:

Operator Hasil
x > y Lebih dari
x >= y Lebih besar dari atau sama dengan
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x = y Equal
x <> y Tidak sama dengan
x + y Jumlah
x - y Perbedaan
x * y Produk
x / y Hasil bagi
x ?? y Coalesce
+x Nilai tambah unary
-x Negasi

Jenis asli nilai angka adalah jenis numberintrinsik .

Waktu

Nilai waktu menyimpan representasi buram dari waktu dalam sehari. Waktu dikodekan sebagai jumlah kutu sejak tengah malam, yang menghitung jumlah kutu 100 nanodetik yang telah berlalu pada jam 24 jam. Jumlah maksimum kutu sejak tengah malam sesuai dengan 23:59:59.9999999 jam.

Meskipun tidak ada sintaks harfiah untuk waktu, beberapa fungsi pustaka standar disediakan untuk membangunnya. Waktu juga dapat dibangun menggunakan fungsi #timeintrinsik :

#time(hour, minute, second)

Berikut ini harus ditangguhkan atau kesalahan dengan kode Expression.Error alasan dimunculkan:

0 ≤ jam ≤ 24
0 ≤ menit ≤ 59
0 ≤ detik ≤ 59

Selain itu, jika jam = 24, maka menit dan detik harus nol.

Operator berikut didefinisikan untuk nilai waktu:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x >= y Lebih besar dari atau sama dengan
x > y Lebih dari
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x ?? y Coalesce

Operator berikut mengizinkan satu atau kedua operand mereka menjadi tanggal:

Operator Operand Kiri Operand Kanan Makna
x + y time duration Tanggal offset menurut durasi
x + y duration time Tanggal offset menurut durasi
x - y time duration Tanggal offset dengan durasi yang dinegasikan
x - y time time Durasi antar tanggal
x & y date time Tanggalwaktu gabungan

Jenis nilai waktu asli adalah jenis timeintrinsik .

Date

Nilai tanggal menyimpan representasi buram dari hari tertentu. Tanggal dikodekan sebagai beberapa hari sejak zaman, mulai dari 1 Januari 0001 Era Umum pada kalender Gregorian. Jumlah maksimum hari sejak zaman 3652058, sesuai dengan 31 Desember 9999.

Meskipun tidak ada sintaks harfiah untuk tanggal, beberapa fungsi pustaka standar disediakan untuk membangunnya. Tanggal juga dapat dibangun menggunakan fungsi #dateintrinsik :

#date(year, month, day)

Berikut ini harus ditangguhkan atau kesalahan dengan kode Expression.Error alasan dimunculkan:

1 ≤ tahun ≤ 9999
1 ≤ bulan ≤ 12
1 ≤ hari ≤ 31

Selain itu, hari harus berlaku untuk bulan dan tahun yang dipilih.

Operator berikut didefinisikan untuk nilai tanggal:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x >= y Lebih besar dari atau sama dengan
x > y Lebih dari
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x ?? y Coalesce

Operator berikut mengizinkan satu atau kedua operand mereka menjadi tanggal:

Operator Operand Kiri Operand Kanan Makna
x + y date duration Tanggal offset menurut durasi
x + y duration date Tanggal offset menurut durasi
x - y date duration Tanggal offset dengan durasi yang dinegasikan
x - y date date Durasi antar tanggal
x & y date time Tanggalwaktu gabungan

Jenis asli nilai tanggal adalah jenis dateintrinsik .

WaktuTanggal

Nilai tanggalwaktu berisi tanggal dan waktu.

Meskipun tidak ada sintaks harfiah untuk tanggalwaktu, beberapa fungsi pustaka standar disediakan untuk membangunnya. Tanggalwaktu juga dapat dibangun menggunakan fungsi #datetimeintrinsik :

#datetime(year, month, day, hour, minute, second)

Berikut ini harus ditangguhkan atau kesalahan dengan kode alasan Expression.Error muncul: 1 ≤ tahun ≤ 9999
1 ≤ bulan ≤ 12
1 ≤ hari ≤ 31
0 ≤ jam ≤ 23
0 ≤ menit ≤ 59
0 ≤ detik ≤ 59

Selain itu, hari harus berlaku untuk bulan dan tahun yang dipilih.

Operator berikut didefinisikan untuk nilai tanggalwaktu:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x >= y Lebih besar dari atau sama dengan
x > y Lebih dari
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x ?? y Coalesce

Operator berikut mengizinkan satu atau kedua operand mereka menjadi tanggalwaktu:

Operator Operand Kiri Operand Kanan Makna
x + y datetime duration Offset tanggalwaktu menurut durasi
x + y duration datetime Offset tanggalwaktu menurut durasi
x - y datetime duration Offset tanggalwaktu dengan durasi yang dinegasikan
x - y datetime datetime Durasi antara tanggalwaktu

Jenis asli nilai tanggalwaktu adalah jenis datetimeintrinsik .

Zona Tanggal Waktu

Nilai zona tanggalwaktu berisi tanggalwaktu dan zona waktu. Zona waktu dikodekan sebagai sejumlah menit offset dari UTC, yang menghitung jumlah menit bagian waktu dari tanggalwaktu harus diimbangi dari Universal Coordinated Time (UTC). Jumlah minimum offset menit dari UTC adalah -840, mewakili offset UTC -14:00, atau empat belas jam lebih awal dari UTC. Jumlah maksimum offset menit dari UTC adalah 840, sesuai dengan offset UTC 14:00.

Meskipun tidak ada sintaks harfiah untuk zona tanggalwaktu, beberapa fungsi pustaka standar disediakan untuk membangunnya. Datetimezones juga dapat dibangun menggunakan fungsi #datetimezoneintrinsik :

#datetimezone(
       year, month, day,
       hour, minute, second,
       offset-hours, offset-minutes)

Berikut ini harus ditangguhkan atau kesalahan dengan kode Expression.Error alasan dimunculkan:

1 ≤ tahun ≤ 9999
1 ≤ bulan ≤ 12
1 ≤ hari ≤ 31
0 ≤ jam ≤ 23
0 ≤ menit ≤ 59
0 ≤ detik ≤ 59
-14 ≤ jam offset ≤ 14
-59 ≤ offset-minutes ≤ 59

Selain itu, hari harus berlaku untuk bulan dan tahun yang dipilih dan, jika jam offset = 14, maka offset-minutes <= 0 dan, jika offset-hours = -14, maka offset-minutes >= 0.

Operator berikut didefinisikan untuk nilai zona tanggalwaktu:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x >= y Lebih besar dari atau sama dengan
x > y Lebih dari
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x ?? y Coalesce

Operator berikut mengizinkan satu atau kedua operand mereka menjadi zona tanggalwaktu:

Operator Operand Kiri Operand Kanan Makna
x + y datetimezone duration Offset zona tanggalwaktu menurut durasi
x + y duration datetimezone Offset zona tanggalwaktu menurut durasi
x - y datetimezone duration Offset zona tanggalwaktu dengan durasi yang dinegasikan
x - y datetimezone datetimezone Durasi antara zona tanggalwaktu

Jenis asli nilai datetimezone adalah jenis datetimezoneintrinsik .

Durasi

Nilai durasi menyimpan representasi buram dari jarak antara dua titik pada garis waktu yang diukur 100 tanda nanodetik. Besarnya durasi dapat berupa positif atau negatif, dengan nilai positif yang menunjukkan kemajuan maju dalam waktu dan nilai negatif yang menunjukkan kemajuan mundur dalam waktu. Nilai minimum yang dapat disimpan dalam durasi adalah -9.223.372.036.854.775.808 tick, atau 10.675.199 hari 2 jam 48 menit 05,4775808 detik ke belakang dalam waktu. Nilai maksimum yang dapat disimpan dalam durasi adalah 9.223.372.036.854.775.807 tick, atau 10.675.199 hari 2 jam 48 menit 05,4775807 detik maju tepat waktu.

Meskipun tidak ada sintaks harfiah untuk durasi, beberapa fungsi pustaka standar disediakan untuk membangunnya. Durasi juga dapat dibangun menggunakan fungsi #durationintrinsik :

#duration(0, 0, 0, 5.5)          // 5.5 seconds 
#duration(0, 0, 0, -5.5)         // -5.5 seconds 
#duration(0, 0, 5, 30)           // 5.5 minutes 
#duration(0, 0, 5, -30)          // 4.5 minutes 
#duration(0, 24, 0, 0)           // 1 day 
#duration(1, 0, 0, 0)            // 1 day

Operator berikut didefinisikan pada nilai durasi:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x >= y Lebih besar dari atau sama dengan
x > y Lebih dari
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x ?? y Coalesce

Selain itu, operator berikut memungkinkan satu atau kedua operand mereka menjadi nilai durasi:

Operator Operand Kiri Operand Kanan Makna
x + y datetime duration Offset tanggalwaktu menurut durasi
x + y duration datetime Offset tanggalwaktu menurut durasi
x + y duration duration Jumlah durasi
x - y datetime duration Offset tanggalwaktu dengan durasi yang dinegasikan
x - y datetime datetime Durasi antara tanggalwaktu
x - y duration duration Perbedaan durasi
x * y duration number Durasi N kali
x * y number duration Durasi N kali
x / y duration number Pecahan durasi

Jenis nilai durasi asli adalah jenis durationintrinsik .

Teks

Nilai teks mewakili urutan karakter Unicode. Nilai teks memiliki bentuk harfiah yang sesuai dengan tata bahasa berikut:

_text harfiah:
      "opt karakter teks-literal"
karakter teks-literal:
      teks-literal-character text-literal-charactersopt
text-literal-character:
      karakter teks tunggal
      karakter-escape-sequence
      double-quote-escape-sequence
karakter teks tunggal:

      Karakter apa pun kecuali " (U+0022) atau # (U+0023) diikuti oleh ( (U+0028)
double-quote-escape-sequence:
      "" (U+0022, U+0022)

Berikut ini adalah contoh nilai teks :

"ABC" // the text value ABC

Operator berikut didefinisikan pada nilai teks :

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x >= y Lebih besar dari atau sama dengan
x > y Lebih dari
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x & y Rangkaian
x ?? y Coalesce

Jenis asli nilai teks adalah jenis textintrinsik .

Biner

Nilai biner mewakili urutan byte.

Meskipun tidak ada sintaks harfiah untuk nilai biner, beberapa fungsi pustaka standar disediakan untuk membangunnya. Nilai biner juga dapat dibangun menggunakan fungsi #binaryintrinsik .

Contoh berikut membuat nilai biner dari daftar byte:

#binary( {0x00, 0x01, 0x02, 0x03} )

Operator berikut didefinisikan pada nilai biner :

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x >= y Lebih besar dari atau sama dengan
x > y Lebih dari
x < y Kurang dari
x <= y Kurang dari atau sama dengan
x ?? y Coalesce

Jenis asli nilai biner adalah biner jenis intrinsik.

Daftar

Nilai daftar adalah nilai yang menghasilkan urutan nilai saat dijumlahkan. Nilai yang dihasilkan oleh daftar dapat berisi segala jenis nilai, termasuk daftar. Daftar dapat dibangun menggunakan sintaks inisialisasi, sebagai berikut:

list-expression:
      { item-listopt }
daftar item:
      item
      
,daftar item
item:
      expression
      ekspresi ekspresi
..

Berikut ini adalah contoh ekspresi daftar yang menentukan daftar dengan tiga nilai teks: "A", "B", dan "C".

{"A", "B", "C"}

Nilainya "A" adalah item pertama dalam daftar, dan nilainya "C" adalah item terakhir dalam daftar.

  • Item daftar tidak dievaluasi hingga diakses.
  • Meskipun nilai daftar yang dibangun menggunakan sintaks daftar akan menghasilkan item dalam urutan muncul dalam daftar item, secara umum, daftar yang dikembalikan dari fungsi pustaka dapat menghasilkan set yang berbeda atau jumlah nilai yang berbeda setiap kali dijumlahkan.

Untuk menyertakan urutan bilangan buletin dalam daftar, a..b formulir dapat digunakan:

{ 1, 5..9, 11 }     // { 1, 5, 6, 7, 8, 9, 11 }

Jumlah item dalam daftar, yang dikenal sebagai jumlah daftar, dapat ditentukan menggunakan List.Count fungsi .

List.Count({true, false})  // 2 
List.Count({})             // 0

Daftar mungkin secara efektif memiliki jumlah item yang tak terbatas; List.Count untuk daftar tersebut tidak terdefinisi dan dapat menimbulkan kesalahan atau tidak dihentikan.

Jika daftar tidak berisi item, daftar tersebut disebut daftar kosong. Daftar kosong ditulis sebagai:

{}  // empty list

Operator berikut didefinisikan untuk daftar:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x & y Concatenate
x ?? y Coalesce

Contohnya:

{1, 2} & {3, 4, 5}   // {1, 2, 3, 4, 5} 
{1, 2} = {1, 2}      // true 
{2, 1} <> {1, 2}     // true

Jenis asli nilai daftar adalah jenis listintrinsik , yang menentukan jenis item .any

Rekaman

Nilai rekaman adalah urutan bidang yang diurutkan. Bidang terdiri dari nama bidang, yang merupakan nilai teks yang secara unik mengidentifikasi bidang dalam rekaman, dan nilai bidang. Nilai bidang bisa berupa nilai apa pun, termasuk rekaman. Rekaman dapat dibangun menggunakan sintaks inisialisasi, sebagai berikut:

ekspresi rekaman:
      [opt daftarbidang]
daftar bidang:
      bidang
      
,daftar bidang
Bidang:
      ekspresi nama
=bidang
nama bidang:
      pengidentifikasi umum
      pengidentifikasi kutipan

Contoh berikut membuat rekaman dengan bidang bernama x dengan nilai 1, dan bidang bernama y dengan nilai 2.

[ x = 1, y = 2 ]

Contoh berikut membuat rekaman dengan a bidang bernama dengan nilai rekaman berlapis. Rekaman berlapis memiliki bidang bernama b dengan nilai 2.

[ a = [ b = 2 ] ]

Berikut ini berlaku saat mengevaluasi ekspresi rekaman:

  • Ekspresi yang ditetapkan untuk setiap nama bidang digunakan untuk menentukan nilai bidang terkait.

  • Jika ekspresi yang ditetapkan ke nama bidang menghasilkan nilai saat dievaluasi, maka itu menjadi nilai bidang rekaman yang dihasilkan.

  • Jika ekspresi yang ditetapkan ke nama bidang menimbulkan kesalahan saat dievaluasi, maka fakta bahwa kesalahan dimunculkan direkam dengan bidang bersama dengan nilai kesalahan yang dimunculkan. Akses berikutnya ke bidang tersebut akan menyebabkan kesalahan muncul kembali dengan nilai kesalahan yang direkam.

  • Ekspresi dievaluasi di lingkungan seperti lingkungan induk hanya dengan variabel yang digabungkan dalam yang sesuai dengan nilai setiap bidang rekaman, kecuali yang sedang diinisialisasi.

  • Nilai dalam rekaman tidak dievaluasi hingga bidang terkait diakses.

  • Nilai dalam rekaman dievaluasi paling banyak sekali.

  • Hasil ekspresi adalah nilai rekaman dengan catatan metadata kosong.

  • Urutan bidang dalam rekaman ditentukan oleh urutan yang muncul dalam ekspresi penginisialisasi rekaman.

  • Setiap nama bidang yang ditentukan harus unik dalam rekaman, atau merupakan kesalahan. Nama dibandingkan menggunakan perbandingan ordinal.

    [ x = 1, x = 2 ] // error: field names must be unique 
    [ X = 1, x = 2 ] // OK

Rekaman tanpa bidang disebut catatan kosong, dan ditulis sebagai berikut:

[] // empty record

Meskipun urutan bidang rekaman tidak signifikan saat mengakses bidang atau membandingkan dua rekaman, itu signifikan dalam konteks lain seperti ketika bidang rekaman dijumlahkan.

Dua rekaman yang sama menghasilkan hasil yang berbeda ketika bidang diperoleh:

Record.FieldNames([ x = 1, y = 2 ]) // [ "x", "y" ] 
Record.FieldNames([ y = 1, x = 2 ]) // [ "y", "x" ]

Jumlah bidang dalam rekaman dapat ditentukan menggunakan Record.FieldCount fungsi . Contohnya:

Record.FieldCount([ x = 1, y = 2 })  // 2 
Record.FieldCount([])                // 0

Selain menggunakan sintaks [ ]inisialisasi rekaman , rekaman dapat dibangun dari daftar nilai, dan daftar nama bidang atau jenis rekaman. Contohnya:

Record.FromList({1, 2}, {"a", "b"})

Hal di atas setara dengan:

[ a = 1, b = 2 ]

Operator berikut didefinisikan untuk nilai rekaman:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x & y Penggabungan
x ?? y Coalesce

Contoh berikut mengilustrasikan operator di atas. Perhatikan bahwa penggabungan rekaman menggunakan bidang dari operand kanan untuk mengambil alih bidang dari operand kiri, jika ada tumpang tindih dalam nama bidang.

[ a = 1, b = 2 ] & [ c = 3 ]    // [ a = 1, b = 2, c = 3 ] 
[ a = 1, b = 2 ] & [ a = 3 ]    // [ a = 3, b = 2 ] 
[ a = 1, b = 2 ] = [ b = 2, a = 1 ]         // true 
[ a = 1, b = 2, c = 3 ] <> [ a = 1, b = 2 ] // true

Jenis asli nilai rekaman adalah jenis recordintrinsik , yang menentukan daftar bidang kosong terbuka.

Tabel

Nilai tabel adalah urutan baris yang diurutkan. Baris adalah urutan nilai kolom yang diurutkan. Jenis tabel menentukan panjang semua baris dalam tabel, nama kolom tabel, jenis kolom tabel, dan struktur kunci tabel (jika ada).

Meskipun tidak ada sintaks harfiah untuk tabel, beberapa fungsi pustaka standar disediakan untuk membangunnya. Tabel juga dapat dibangun menggunakan fungsi #tableintrinsik .

Contoh berikut membuat tabel dari daftar nama kolom dan daftar baris. Tabel yang dihasilkan akan berisi dua kolom dan type any tiga baris.

#table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}})

#table juga dapat digunakan untuk menentukan jenis tabel lengkap:

#table(
    type table [Digit = number, Name = text],  
    {{1,"one"}, {2,"two"}, {3,"three"}} 
    )

Di sini nilai tabel baru memiliki tipe tabel yang menentukan nama kolom dan tipe kolom.

Operator berikut didefinisikan untuk nilai tabel:

Operator Hasil
x = y Equal
x <> y Tidak sama dengan
x & y Rangkaian
x ?? y Coalesce

Perangkaian tabel meratakan kolom seperti bernama dan mengisi null kolom yang hanya muncul di salah satu tabel operand. Contoh berikut mengilustrasikan perangkaian tabel:

  #table({"A","B"}, {{1,2}}) 
& #table({"B","C"}, {{3,4}})
A B C
1 2 null
null 3 4

Jenis asli nilai tabel adalah jenis tabel kustom (berasal dari jenis tableintrinsik ) yang mencantumkan nama kolom, menentukan semua jenis kolom menjadi apa pun, dan tidak memiliki kunci. (Buka Jenis tabel untuk detail tentang jenis tabel.)

Function

Nilai fungsi adalah nilai yang memetakan sekumpulan argumen ke satu nilai. Detail nilai fungsi dijelaskan dalam Functions.

Jenis

Nilai jenis adalah nilai yang mengklasifikasikan nilai lain. Detail nilai jenis dijelaskan dalam Jenis.