濮阳杆衣贸易有限公司

主頁 > 知識庫 > SQLite教程(六):表達(dá)式詳解

SQLite教程(六):表達(dá)式詳解

熱門標(biāo)簽:高德地圖標(biāo)注電話怎么沒了 智能電銷機(jī)器人教育 電話機(jī)器人錄音師薪資 無錫梁溪公司怎樣申請400電話 奧維地圖標(biāo)注字體大小修改 孝感銷售電銷機(jī)器人廠家 江西穩(wěn)定外呼系統(tǒng)供應(yīng)商 北京智能外呼系統(tǒng)供應(yīng)商家 中國地圖標(biāo)注省份用什么符號

一、常用表達(dá)式:

    和大多數(shù)關(guān)系型數(shù)據(jù)庫一樣,SQLite能夠很好的支持SQL標(biāo)準(zhǔn)中提供的表達(dá)式,其函數(shù)也與SQL標(biāo)準(zhǔn)保持一致,如:

復(fù)制代碼 代碼如下:

    ||
    *    /    %
    +    -
       >>       |
        =   >    >=
    =    ==   !=   >   IS   IS NOT   IN   LIKE
    AND  
    OR
    ~    NOT

    在上面的表達(dá)式中,唯一需要說明的是"||",該表達(dá)式主要用于兩個字符串之間的連接,其返回值為連接后的字符串,即便該操作符兩邊的操作數(shù)為非字符串類型,在執(zhí)行該表達(dá)式之前都需要被提前轉(zhuǎn)換為字符串類型,之后再進(jìn)行連接。

二、條件表達(dá)式:

    該表達(dá)式的語法規(guī)則如下:
 

復(fù)制代碼 代碼如下:

    1). CASE x WHEN w1 THEN r1 WHEN w2 THEN r2 ELSE r3 END
    2). CASE WHEN x=w1 THEN r1 WHEN x=w2 THEN r2 ELSE r3 END
 

    對于第一種情況,條件表達(dá)式x只需計算一次,然后分別和WHEN關(guān)鍵字后的條件逐一進(jìn)行比較,直到找到相等的條件,其比較規(guī)則等價于等號(=)表達(dá)式。如果找到匹配的條件,則返回其后THEN關(guān)鍵字所指向的值,如果沒有找到任何匹配,則返回ELSE關(guān)鍵字之后的值,如果不存在ELSE分支,則返回NULL。對于第二種情況,和第一種情況相比,唯一的差別就是表達(dá)式x可能被多次執(zhí)行,比如第一個WHEN條件不匹配,則繼續(xù)計算后面的WHEN條件,其它規(guī)則均與第一種完全相同。最后需要說明的是,以上兩種形式的CASE表達(dá)式均遵守短路原則,即第一個表達(dá)式的條件一旦匹配,其后所有的WHEN表達(dá)式均不會再被執(zhí)行或比較。

三、轉(zhuǎn)換表達(dá)式:

    該表達(dá)式的語法規(guī)則如下:
 

復(fù)制代碼 代碼如下:

    CAST(expr AS target_type)
 

    該表達(dá)式會將參數(shù)expr轉(zhuǎn)換為target_type類型,具體的轉(zhuǎn)換規(guī)則見如下列表:


目標(biāo)類型 轉(zhuǎn)換規(guī)則描述
TEXT 如果轉(zhuǎn)換INTEGER或REAL類型的值到TEXT類型直接轉(zhuǎn)換即可,就像C/C++接口函數(shù)sqlite3_snprintf所完成的工作。
REAL 如果轉(zhuǎn)換TEXT類型的值到REAL類型,在該文本的最前部,將可以轉(zhuǎn)換為實數(shù)的文本轉(zhuǎn)換為相應(yīng)的實數(shù),其余部分忽略。其中該文本值的前導(dǎo)零亦將被全部忽略。如果該文本值沒有任何字符可以轉(zhuǎn)換為實數(shù),CAST表達(dá)式的轉(zhuǎn)換結(jié)果為0.0。
INTEGER 如果轉(zhuǎn)換TEXT類型的值到INTEGER類型,在該文本的最前部,將可以轉(zhuǎn)換為整數(shù)的文本轉(zhuǎn)換為相應(yīng)的整數(shù),其余部分忽略。其中該文本值的前導(dǎo)零亦將被全部忽略。如果該文本值沒有任何字符可以轉(zhuǎn)換為整數(shù),CAST表達(dá)式的轉(zhuǎn)換結(jié)果為0。
如果轉(zhuǎn)換將一個實數(shù)值轉(zhuǎn)換為INTEGER類型,則直接截斷實數(shù)小數(shù)部分。如果實數(shù)過大,則返回最大的負(fù)整數(shù):-9223372036854775808。
NUMERIC   如果轉(zhuǎn)換文本值到NUMERIC類型,則先將該值強(qiáng)制轉(zhuǎn)換為REAL類型,只有在將REAL轉(zhuǎn)換為INTEGER不會導(dǎo)致數(shù)據(jù)信息丟失以及完全可逆的情況下,SQLite才會進(jìn)一步將其轉(zhuǎn)換為INTEGER類型。

    最后需要說明的是,如果expr為NULL,則轉(zhuǎn)換的結(jié)果也為NULL。

標(biāo)簽:阜陽 臨滄 荊州 齊齊哈爾 通化 泰州 海北 那曲

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQLite教程(六):表達(dá)式詳解》,本文關(guān)鍵詞  SQLite,教程,六,表達(dá)式,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQLite教程(六):表達(dá)式詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQLite教程(六):表達(dá)式詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    会昌县| 大同县| 昔阳县| 岗巴县| 右玉县| 鄂尔多斯市| 托克托县| 阜平县| 郧西县| 洪洞县| 天门市| 北京市| 临高县| 巨野县| 民勤县| 肥东县| 广元市| 兴和县| 桂阳县| 荆门市| 孟津县| 民县| 江口县| 微博| 吉木萨尔县| 诏安县| 太康县| 赣榆县| 安吉县| 凌源市| 甘德县| 黔江区| 吉安县| 南溪县| 宿州市| 普定县| 瑞丽市| 福安市| 潢川县| 琼海市| 通渭县|