国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【PostgreSQL】函數(shù)與操作符-比較函數(shù)和操作符

這篇具有很好參考價(jià)值的文章主要介紹了【PostgreSQL】函數(shù)與操作符-比較函數(shù)和操作符。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

PostgreSQL函數(shù)與操作符-比較函數(shù)和操作符

PostgreSQL中的比較函數(shù)和操作符

PostgreSQL中的比較函數(shù)和操作符用于比較兩個(gè)表達(dá)式的值。它們的作用是確定表達(dá)式的值是否滿足某種條件,例如等于、大于、小于等。

比較函數(shù)是一個(gè)接受兩個(gè)參數(shù)的函數(shù),返回一個(gè)布爾值,表示兩個(gè)參數(shù)是否滿足某種條件。例如,equal()函數(shù)用于判斷兩個(gè)參數(shù)是否相等,greater than()函數(shù)用于判斷第一個(gè)參數(shù)是否大于第二個(gè)參數(shù)。

比較操作符是一種特殊的函數(shù),使用符號(hào)表示,例如=表示等于,>表示大于,<表示小于等。比較操作符可以直接應(yīng)用于表達(dá)式,返回一個(gè)布爾值。

比較函數(shù)和操作符在使用上有所不同。比較函數(shù)可以用于任意類型的表達(dá)式,而比較操作符只能用于特定類型的表達(dá)式。此外,比較函數(shù)更加靈活,可以自定義比較規(guī)則,而比較操作符的比較規(guī)則是固定的。

在使用比較函數(shù)和操作符時(shí),可以通過組合多個(gè)比較條件來(lái)構(gòu)建復(fù)雜的比較表達(dá)式。例如,可以使用AND、OR等邏輯操作符來(lái)連接多個(gè)比較條件,以實(shí)現(xiàn)更靈活的比較。

總的來(lái)說(shuō),比較函數(shù)和操作符在比較表達(dá)式的值時(shí)起到了關(guān)鍵作用,它們可以用于判斷兩個(gè)值的大小關(guān)系、相等關(guān)系等,并且可以根據(jù)需要進(jìn)行靈活的組合和擴(kuò)展。

PostgreSQL常見的比較操作符都可用,如下表所示。

操作符 描述
< 小于
> 大于
<= 小于等于
>= 大于等于
= 等于
<> or != 不等于

比較操作符可以用于所有可以比較的數(shù)據(jù)類型。所有比較操作符都是雙目操作符,它們返回boolean類型;類似于1 < 2 < 3的表達(dá)式是非法的(因?yàn)闆]有<操作符可以比較一個(gè)布爾值和3)。

如下表所示,也有一些比較謂詞。它們的行為和操作符很像,但是具有 SQL 標(biāo)準(zhǔn)所要求的特殊語(yǔ)法。

謂詞 描述
a BETWEEN x AND y 在x和y之間
a NOT BETWEEN x AND y 不在x和y之間
a BETWEEN SYMMETRIC x AND y 在對(duì)比較值排序后位于x和y之間
a NOT BETWEEN SYMMETRIC x AND y 在對(duì)比較值排序后不位于x和y之間
a IS DISTINCT FROM b 不等于,空值被當(dāng)做一個(gè)普通值
a IS NOT DISTINCT FROM b 等于,空值被當(dāng)做一個(gè)普通值
expression IS NULL
expression IS NOT NULL 不是空值
expression ISNULL 是空值(非標(biāo)準(zhǔn)語(yǔ)法)
expression NOTNULL 不是空值(非標(biāo)準(zhǔn)語(yǔ)法)
boolean_expression IS TRUE 為真
boolean_expression IS NOT TRUE 為假或未知
boolean_expression IS FALSE 為假
boolean_expression IS NOT FALSE 為真或者未知
boolean_expression IS UNKNOWN 值為未知
boolean_expression IS NOT UNKNOWN 為真或者為假

ETWEEN謂詞可以簡(jiǎn)化范圍測(cè)試:

a BETWEEN x AND y

等效于

a >= x AND a <= y

注意BETWEEN認(rèn)為終點(diǎn)值是包含在范圍內(nèi)的。 NOT BETWEEN可以做相反比較:

a NOT BETWEEN x AND y

等效于

a < x OR a > y

BETWEEN SYMMETRIC和BETWEEN相似,不過BETWEEN SYMMETRIC不要求AND左邊的參數(shù)小于或等于右邊的參數(shù)。如果左參數(shù)不是小于等于右參數(shù),這兩個(gè)參數(shù)會(huì)自動(dòng)被交換,這樣總是會(huì)應(yīng)用一個(gè)非空范圍。

當(dāng)有一個(gè)輸入為空時(shí),普通的比較操作符會(huì)得到空(表示“未知”),而不是真或假。例如,7 = NULL得到空,7 <> NULL也一樣。如果這種行為不合適,可以使用IS [ NOT ] DISTINCT FROM謂詞:

a IS DISTINCT FROM b
a IS NOT DISTINCT FROM b

對(duì)于非空輸入,IS DISTINCT FROM和<>操作符一樣。不過,如果兩個(gè)輸入都為空,它會(huì)返回假。而如果只有一個(gè)輸入為空,它會(huì)返回真。類似地,IS NOT DISTINCT FROM對(duì)于非空輸入的行為與=相同,但是當(dāng)兩個(gè)輸入都為空時(shí)它返回真,并且當(dāng)只有一個(gè)輸入為空時(shí)返回假。因此,這些謂詞實(shí)際上把空值當(dāng)作一種普通數(shù)據(jù)值而不是“unknown”。

要檢查一個(gè)值是否為空,使用下面的謂詞:

expression IS NULL
expression IS NOT NULL

或者等效,但并不標(biāo)準(zhǔn)的謂詞:

expression ISNULL
expression NOTNULL

不要寫expression = NULL,因?yàn)镹ULL是不“等于”NULL的(控制代表一個(gè)未知的值,因此我們無(wú)法知道兩個(gè)未知的數(shù)值是否相等)。

提示:有些應(yīng)用可能要求表達(dá)式expression = NULL在expression得出空值時(shí)返回真。我們強(qiáng)烈建議這樣的應(yīng)用修改成遵循
SQL
標(biāo)準(zhǔn)。但是,如果這樣修改不可能完成,那么我們可以使用配置變量transform_null_equals。如果打開它,PostgreSQL將把x
= NULL子句轉(zhuǎn)換成x IS NULL。

如果expression是行值,那么當(dāng)行表達(dá)式本身為非空值或者行的所有域?yàn)榉强諘r(shí)IS NULL為真。由于這種行為,IS NULL和IS NOT NULL并不總是為行值表達(dá)式返回反轉(zhuǎn)的結(jié)果,特別是,一個(gè)同時(shí)包含 NULL 和非空值的域?qū)?huì)對(duì)兩種測(cè)試都返回假。在某些情況下,寫成row IS DISTINCT FROM NULL或者row IS NOT DISTINCT FROM NULL會(huì)更好,它們只會(huì)檢查整個(gè)行值是否為空而不需要在行的域上做額外的測(cè)試。

布爾值也可以使用下列謂詞進(jìn)行測(cè)試:

boolean_expression IS TRUE
boolean_expression IS NOT TRUE
boolean_expression IS FALSE
boolean_expression IS NOT FALSE
boolean_expression IS UNKNOWN
boolean_expression IS NOT UNKNOWN

這些謂詞將總是返回真或假,從來(lái)不返回空值,即使操作數(shù)是空也如此。空值輸入被當(dāng)做邏輯值“未知”。 請(qǐng)注意實(shí)際上IS UNKNOWN和IS NOT UNKNOWN分別與IS NULL和IS NOT NULL相同, 只是輸入表達(dá)式必須是布爾類型。

如下表中所示,也有一些比較相關(guān)的函數(shù)可用。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796363.html

函數(shù) 描述 例子 例子結(jié)果
num_nonnulls(VARIADIC “any”) 返回非空參數(shù)的數(shù)量 num_nonnulls(1, NULL, 2) 2
num_nulls(VARIADIC “any”) 返回空參數(shù)的數(shù)量 num_nulls(1, NULL, 2) 1

到了這里,關(guān)于【PostgreSQL】函數(shù)與操作符-比較函數(shù)和操作符的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包