亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

SQL Server中COALESCE函數(shù)詳解:空值處理、類型轉(zhuǎn)換與性能陷阱

SQL Server中COALESCE函數(shù)詳解:空值處理、類型轉(zhuǎn)換與性能陷阱 這一章聊 SQL Server 里的 COALESCE。先交代個(gè)背景我身邊不少寫 T-SQL 的同學(xué)工作了兩三年遇到空值第一反應(yīng)都是 ISNULL。我也一樣。直到有一次做報(bào)表清洗一張客戶表里同時(shí)有郵箱、手機(jī)、微信三個(gè)字段業(yè)務(wù)要求按優(yōu)先級取第一個(gè)能用的聯(lián)系方式用 ISNULL 套了三層語句變得又長又難讀。從那次我才真正意識到 COALESCE 的價(jià)值。COALESCE 是一個(gè)標(biāo)準(zhǔn)函數(shù)用來從一系列表達(dá)式里返回第一個(gè)非 NULL 的值參數(shù)可以是兩個(gè)、三個(gè)甚至更多。它解決的核心問題其實(shí)很簡單NULL 在 SQL Server 里既不是 0也不是空字符串更不是“沒有值”那么簡單它在 WHERE、CASE、拼接、聚合里有一整套讓人頭疼的行為。這篇筆記適合剛接觸 T-SQL 的讀者也適合那些已經(jīng)會寫 ISNULL 但還沒認(rèn)真整理過 COALESCE 的人。我會把語法、類型規(guī)則、和 ISNULL 的差別、執(zhí)行計(jì)劃里的坑、實(shí)際業(yè)務(wù)用法都過一遍最后還有幾個(gè)條件寫法上非常容易翻車的地方。1. 為什么NULL值處理值得用一整章來講有件事得先說明白數(shù)據(jù)庫里的 NULL 不是“零”也不是“空字符串”。用生活化的說法NULL 更像是問卷上的“未填寫”——你不知道這個(gè)人到底多大所以不能說他是 0 歲也不能說他不是 0 歲。SQL Server 在判斷一個(gè) NULL 參與的比較時(shí)會返回第三個(gè)邏輯值 UNKNOWN而不是 TRUE 或 FALSE。這個(gè)設(shè)計(jì)看起來繞但它是有原因的NULL 表示“未知”未知和未知之間不能說相等。所以NULL NULL的結(jié)果不是 TRUE而是 UNKNOWN。SELECT CASE WHEN NULL NULL THEN 相等 ELSE 不相等 END AS 結(jié)果; -- 結(jié)果不相等在 WHERE 里這個(gè)行為就更直接。比如一張用戶表里有 age 字段有人沒填年齡IF OBJECT_ID(tempdb..#t) IS NOT NULL DROP TABLE #t; CREATE TABLE #t (id INT, age INT); INSERT INTO #t VALUES (1, 18), (2, NULL), (3, 20); SELECT id FROM #t WHERE age 18; -- 返回1 和 3id2 不會出現(xiàn)id2 的行既沒有滿足“等于 18”也沒有滿足“不等于 18”它連被比較的資格都沒有。這種三值邏輯是 SQL 世界和普通編程語言最大的不同之一也是后來 COALESCE、ISNULL 這類函數(shù)存在的根本原因。1.1 業(yè)務(wù)里最常遇到的三種 NULL 現(xiàn)場第一種是缺失字段直接暴露給前端??蛻舯砝锫?lián)系電話為空頁面顯示空白業(yè)務(wù)人員根本不知道這個(gè)人到底沒留電話還是數(shù)據(jù)沒導(dǎo)入。第二種是聚合計(jì)算的連鎖反應(yīng)。SUM(金額)遇到一組全為 NULL 的數(shù)據(jù)時(shí)返回 NULL而不是 0。這個(gè) NULL 一旦被傳到接口、被寫進(jìn) Excel或者參與二次運(yùn)算問題就炸了。第三種是字符串拼接時(shí)被 NULL “傳染”。很多人以為 SQL Server 2012 之后有了 CONCAT 函數(shù)就萬事大吉但地址: NULL這種老寫法依然返回 NULL而 CONCAT 是會自動忽略 NULL 的。兩套行為混在一起報(bào)表里經(jīng)常出現(xiàn)地址少一大截還不報(bào)錯(cuò)的詭異情況。1.2 沒有COALESCE時(shí)大家是怎么繞的在 COALESCE 出現(xiàn)之前或者說大家沒意識到它之前處理“取第一個(gè)非空字段”只有兩條路。第一條路是 CASE WHEN 逐級判斷SELECT CASE WHEN 郵箱 IS NOT NULL THEN 郵箱 WHEN 手機(jī) IS NOT NULL THEN 手機(jī) ELSE 未留聯(lián)系方式 END AS 聯(lián)系方式 FROM 客戶表;這段代碼邏輯一點(diǎn)問題沒有就是丑。三個(gè)字段還好五個(gè)字段的時(shí)候整段 SQL 全是 CASE 的味道。第二條路是 ISNULL 嵌套SELECT ISNULL(郵箱, ISNULL(手機(jī), 未留聯(lián)系方式)) AS 聯(lián)系方式 FROM 客戶表;兩個(gè)參數(shù)還好三個(gè)以上就變成了括號套括號寫的時(shí)候少打一個(gè)右括號運(yùn)行時(shí)才報(bào)錯(cuò)特別折騰。COALESCE 的出現(xiàn)把這個(gè)問題簡化成一行平鋪的參數(shù)列表這也是它最直觀的價(jià)值。但如果你只把它當(dāng)成“更好看的 ISNULL”那后面幾章里的坑你大概率還會踩一遍。2. COALESCE的語法模型與隱藏的數(shù)據(jù)類型規(guī)則2.1 語法和它背后的CASE等價(jià)式COALESCE 的官方語法是COALESCE ( expression [ ,...n ] )行為描述也很簡單返回參數(shù)列表中第一個(gè)非 NULL 表達(dá)式的值如果所有參數(shù)都是 NULL則返回 NULL。但這里有個(gè)更值得注意的點(diǎn)SQL Server 官方文檔明確說過COALESCE 是 CASE 表達(dá)式的語法簡寫。也就是說COALESCE(a, b, c)在邏輯上等價(jià)于CASE WHEN a IS NOT NULL THEN a WHEN b IS NOT NULL THEN b ELSE c END我建議每一個(gè)使用 COALESCE 的人都在心里存一份這張“翻譯表”。因?yàn)楹竺嫠嘘P(guān)于數(shù)據(jù)類型、求值順序、返回規(guī)則的行為都以這張表為基準(zhǔn)。你以為你在用函數(shù)實(shí)際上你在用 CASE。2.2 數(shù)據(jù)類型優(yōu)先級誰在決定返回類型很多人對 COALESCE 的第一個(gè)誤解是“返回類型當(dāng)然由第一個(gè)參數(shù)決定?!辈粚ΑOALESCE 的返回類型由所有參數(shù)中數(shù)據(jù)類型優(yōu)先級最高的那個(gè)決定而不是第一個(gè)參數(shù)。SQL Server 有一套數(shù)據(jù)類型優(yōu)先級規(guī)則從高到低大致是sql_variant、xml、datetime 系列、float、decimal、int 系列、nvarchar/nchar、varchar/char 等。簡單記住兩個(gè)最常見的結(jié)論int 的優(yōu)先級高于 varchar/nvarchardecimal 的優(yōu)先級高于 int。來看幾個(gè)直觀的例子表達(dá)式返回類型結(jié)果COALESCE(100, 99)int100COALESCE(abc, 1)int報(bào)錯(cuò)將 varchar 轉(zhuǎn)換為 int 失敗COALESCE(CAST(NULL AS int), 9)int9COALESCE(CAST(1 AS decimal(10,2)), 100)decimal(10,2)1.00 與其他分支對齊COALESCE(abc, 1)這個(gè)例子特別反直覺。按“第一個(gè)非 NULL”理解第一個(gè)參數(shù)是 abc非 NULL直接返回 abc 不就行了但實(shí)際上返回類型被第二個(gè)參數(shù) 1 的 int 類型拉高系統(tǒng)會先把 abc 轉(zhuǎn)換成 int轉(zhuǎn)換失敗直接報(bào)錯(cuò)。2.3 兩個(gè)真實(shí)項(xiàng)目里最常見的踩坑現(xiàn)場第一個(gè)坑是把數(shù)字類型的字段和文本兜底混在一起。我處理過一個(gè)模擬項(xiàng)目電話號碼字段在表里是 int業(yè)務(wù)上想要是沒號就顯示“未知”。開發(fā)同學(xué)寫的是SELECT COALESCE(電話, 未知) FROM 客戶表;這條 SQL 一執(zhí)行就報(bào)“將 varchar 轉(zhuǎn)換為數(shù)據(jù)類型 int 時(shí)失敗”。原因就是上一節(jié)說的int 優(yōu)先級更高未知 被轉(zhuǎn)成 int當(dāng)然失敗。正確做法是同類型對齊SELECT COALESCE(CONVERT(varchar(20), 電話), 未知) FROM 客戶表;第二個(gè)坑發(fā)生在 decimal 精度標(biāo)度混用的時(shí)候。COALESCE 的參數(shù)都是 decimal但精度標(biāo)度不一樣時(shí)SQL Server 會按照內(nèi)部規(guī)則算出新的結(jié)果類型而非簡單取第一個(gè)參數(shù)的類型。結(jié)果可能不是你預(yù)期的小數(shù)位數(shù)等匯總對不上賬的時(shí)候再回頭排查就非常痛苦。我的習(xí)慣是涉及金額、百分比這類對精度敏感的場景不要依賴系統(tǒng)推斷用 CAST 把期望的類型顯式寫死。SELECT COALESCE(CAST(price AS decimal(18,2)), 0) FROM 訂單表;這樣寫出來未必是最短代碼但一定是最不容易出事的代碼。3. 和ISNULL逐個(gè)對比該用哪個(gè)、不該用哪個(gè)SQL Server 里既然已經(jīng)有 ISNULL為什么還要 COALESCE答案很簡單因?yàn)?COALESCE 是 ANSI SQL 標(biāo)準(zhǔn)的一部分跨數(shù)據(jù)庫遷移時(shí)更友好同時(shí)它支持兩個(gè)以上的參數(shù)。但 ISNULL 也不是沒有存在價(jià)值下面從幾個(gè)維度認(rèn)真比一輪。3.1 六個(gè)核心差異對照對比維度ISNULLCOALESCE參數(shù)個(gè)數(shù)固定 2 個(gè)2 個(gè)到多個(gè)SQL 標(biāo)準(zhǔn)T-SQL 專用ANSI SQL 標(biāo)準(zhǔn)返回類型規(guī)則固定以第一個(gè)參數(shù)類型為準(zhǔn)以所有參數(shù)中優(yōu)先級最高者為準(zhǔn)與 CASE 的關(guān)系無是獨(dú)立函數(shù)是 CASE 的語法簡寫鏈?zhǔn)蕉档仔枰短?ISNULL(ISNULL(...))參數(shù)平鋪即可轉(zhuǎn)換失敗表現(xiàn)第二個(gè)參數(shù)向第一個(gè)參數(shù)類型轉(zhuǎn)換失敗時(shí)報(bào)錯(cuò)返回類型確定后任一參數(shù)轉(zhuǎn)換失敗都可能報(bào)錯(cuò)3.2 ISNULL的“前向轉(zhuǎn)換”和COALESCE的“優(yōu)先級轉(zhuǎn)換”這兩種函數(shù)最大的行為差異在于類型轉(zhuǎn)換方向。ISNULL 的規(guī)則非常死板返回類型永遠(yuǎn)是第一個(gè)參數(shù)的類型第二個(gè)參數(shù)如果想?yún)⑴c取值必須能隱式轉(zhuǎn)換成第一個(gè)參數(shù)的類型。COALESCE 的規(guī)則則是“民主集中制”所有參數(shù)先按數(shù)據(jù)類型優(yōu)先級選出老大然后所有人都向老大看齊。一個(gè)非常經(jīng)典的對比 SQL 能把這個(gè)差異照得明明白白-- ISNULL返回類型固定為第一個(gè)參數(shù)的 varchar返回 abc SELECT ISNULL(abc, CAST(NULL AS int)); -- COALESCEint 優(yōu)先級更高返回類型變成 intabc 轉(zhuǎn)換失敗報(bào)錯(cuò) SELECT COALESCE(abc, CAST(NULL AS int));第二個(gè)參數(shù)明明是 NULL但它已經(jīng)足夠影響整個(gè)表達(dá)式的返回類型了。很多人第一次看到這個(gè)報(bào)錯(cuò)都會愣一下這個(gè) CAST(NULL AS int) 根本沒被用上憑什么它來定類型這就是 COALESCE 隱藏最深的規(guī)則之一類型推斷不關(guān)心值是 NULL 還是非 NULL只看參數(shù)的數(shù)據(jù)類型聲明。3.3 鏈?zhǔn)蕉档椎目勺x性對比老代碼里經(jīng)常有這種寫法ISNULL(微信, ISNULL(郵箱, ISNULL(手機(jī), 無聯(lián)系方式)))嵌套三層勉強(qiáng)能看五層以上就是災(zāi)難。改成 COALESCE 之后COALESCE(微信, 郵箱, 手機(jī), 無聯(lián)系方式)維護(hù)時(shí)想調(diào)整優(yōu)先級直接在第幾個(gè)參數(shù)的位置上調(diào)換順序就行不用去數(shù)括號。這也是我在團(tuán)隊(duì)代碼評審里最常提的替換建議。當(dāng)然 ISNULL 也不是一無是處。它勝在語義直白、參數(shù)固定不會亂寫、少數(shù)復(fù)雜執(zhí)行計(jì)劃下優(yōu)化器的選擇更穩(wěn)定。但為了這點(diǎn)差距犧牲可讀性不值得。簡單兩個(gè)參數(shù)的場景愛用哪個(gè)用哪個(gè)多個(gè)參數(shù)鏈?zhǔn)蕉档椎膱鼍拔覠o腦選 COALESCE。4. COALESCE真的“短路”嗎一個(gè)容易翻車的執(zhí)行計(jì)劃問題4.1 “短路”這個(gè)說法到底從哪來很多博客說 COALESCE 是“短路求值”找到第一個(gè)非 NULL 之后后面的參數(shù)就不計(jì)算了。這個(gè)說法主要來源于 MySQL 等數(shù)據(jù)庫的文檔因?yàn)?MySQL 的 COALESCE 確實(shí)會跳過后續(xù)參數(shù)的求值。但 SQL Server 的情況要復(fù)雜得多。官檔只是說 COALESCE 是 CASE 的簡寫而 CASE 的邏輯語義是“只計(jì)算命中的分支”。注意這個(gè)詞邏輯語義。SQL Server 是一個(gè)基于成本的優(yōu)化器它有權(quán)在不改變最終結(jié)果的前提下重排運(yùn)算符、預(yù)計(jì)算標(biāo)量表達(dá)式、做常量折疊。優(yōu)化器認(rèn)為怎么劃算就怎么來并不保證被定義為“不計(jì)算”的表達(dá)式真的不會在物理執(zhí)行計(jì)劃里出現(xiàn)。4.2 我在數(shù)據(jù)轉(zhuǎn)換場景里遇到的“理論上不該報(bào)錯(cuò)卻報(bào)錯(cuò)”我印象最深的一次是給一張日志表做清洗。表里有兩個(gè)字段ErrorCode 是 int 可空Message 是 nvarchar里面存的是用戶填寫的文本。需求是優(yōu)先展示 ErrorCode如果沒有就嘗試從 Message 里解析數(shù)字。一開始團(tuán)隊(duì)同學(xué)寫的 SQL 是這個(gè)樣子的SELECT COALESCE(ErrorCode, CONVERT(int, Message)) FROM 日志表;他當(dāng)時(shí)的想法很直接ErrorCode 有值的時(shí)候CONVERT(int, Message) 根本不會被計(jì)算不會出錯(cuò)。結(jié)果這條 SQL 在跑大分區(qū)的時(shí)候報(bào)了轉(zhuǎn)換錯(cuò)誤報(bào)錯(cuò)信息指向 Message 里的非數(shù)字文本“N/A”。問題在于執(zhí)行計(jì)劃選擇了先對 Message 做轉(zhuǎn)換運(yùn)算把“不該走”的分支提前算了一遍。這種現(xiàn)象不是每次必現(xiàn)和表的數(shù)據(jù)分布、執(zhí)行計(jì)劃形狀有關(guān)但一旦碰上一次整個(gè)任務(wù)就掛掉。從那以后我給自己定了一條鐵律不要把重要的業(yè)務(wù)邏輯托付給 COALESCE 的隱式短路。特別是第二個(gè)參數(shù)里帶 CONVERT、除法、子查詢這類“有副作用”的表達(dá)式時(shí)默認(rèn)它會算而不是默認(rèn)它不會算。4.3 不要依賴隱式短路把邊界條件寫明白同樣一個(gè)需求穩(wěn)固的寫法是給轉(zhuǎn)換加一層保護(hù)SELECT COALESCE(ErrorCode, TRY_CONVERT(int, Message)) FROM 日志表;TRY_CONVERT 在轉(zhuǎn)換失敗時(shí)返回 NULL而不是拋錯(cuò)。這樣即使優(yōu)化器提前計(jì)算了后面的參數(shù)最多得到 NULL絕不會讓整條 SQL 崩掉。更嚴(yán)格一點(diǎn)的寫法是先用 CASE 顯式把邊界條件寫出來比如只有 Message 看起來像純數(shù)字時(shí)才嘗試轉(zhuǎn)換。代碼長了點(diǎn)但執(zhí)行計(jì)劃和業(yè)務(wù)邏輯都在你的掌控之內(nèi)。寫到最后你會發(fā)現(xiàn)COALESCE 本身是安全的不安全的是“你以為它一定會短路”這個(gè)假設(shè)。兜底默認(rèn)值這種無害表達(dá)式隨便用涉及轉(zhuǎn)換和計(jì)算的表達(dá)式請自覺套上安全殼。5. 六個(gè)能直接抄進(jìn)業(yè)務(wù)代碼的COALESCE用法5.1 報(bào)表輸出層把“空值”換成“用戶看得懂的話”報(bào)表查詢是 COALESCE 最經(jīng)典的主場。聯(lián)系方式、地址、備注這些列經(jīng)常存在部分記錄缺失的情況。與其把 NULL 拋給前端不如在 SQL 層直接換成展示文案SELECT 客戶ID, COALESCE(收貨人電話, 備用電話, 未填寫) AS 聯(lián)系電話 FROM 客戶資料;這樣前端不用反復(fù)判斷 NULL減少一層聯(lián)調(diào)成本。注意這里的電話字段如果存的是數(shù)字類型就得先 CONVERT 成字符串再走 COALESCE否則又會撞上類型轉(zhuǎn)換報(bào)錯(cuò)。5.2 多列合并取首個(gè)非空郵箱、手機(jī)、微信號業(yè)務(wù)里經(jīng)常有一組“同義字段”比如聯(lián)系方式有微信、郵箱、手機(jī)三個(gè)入口行數(shù)據(jù)不一定哪個(gè)字段有值展示時(shí)要按業(yè)務(wù)優(yōu)先級選一個(gè)。SELECT 客戶ID, COALESCE(微信ID, 郵箱, 手機(jī)) AS 首選聯(lián)系方式 FROM 客戶表;這個(gè)場景用 CASE 寫非常啰嗦用 ISNULL 嵌套也很痛苦COALESCE 一行就表達(dá)了“優(yōu)先級順序即參數(shù)順序”這個(gè)語義。調(diào)整優(yōu)先級時(shí)直接調(diào)參數(shù)位置比改一堆 CASE WHEN 快得多。5.3 聚合結(jié)果特殊值LEFT JOIN之后SUM出來的NULL聚合函數(shù)里SUM、AVG、MAX 對 NULL 的行為和直覺不太一樣組內(nèi)如果沒有任何非 NULL 值SUM 返回的是 NULL不是 0。最常見的觸發(fā)場景是 LEFT JOINSELECT c.CustomerID, COALESCE(SUM(o.Amount), 0) AS TotalAmount FROM Customers c LEFT JOIN Orders o ON o.CustomerID c.CustomerID GROUP BY c.CustomerID;沒有下過單的客戶在 JOIN 之后對應(yīng)的 o.Amount 是 NULLSUM 之后還是 NULL。不包 COALESCE 的話這條查詢的接口返回值就是 NULL前端經(jīng)常渲染成空白。還有個(gè)很容易忽略的點(diǎn)如果查詢里再寫一個(gè)WHERE o.OrderDate 2024-01-01LEFT JOIN 的語義會退化沒訂單的客戶會被過濾掉這時(shí)候 COALESCE 也救不回來。這個(gè)坑和 COALESCE 無關(guān)但要留個(gè)心眼。5.4 行轉(zhuǎn)列字符串拼接FOR XML PATH里的NULL斷鏈老版本的 SQL Server 做逗號分隔拼接最常用的招數(shù)就是 FOR XML PATH。這里面藏著一個(gè)靜默丟數(shù)據(jù)的問題一旦被拼接的列里有 NULL, NULL的結(jié)果是 NULL這一行在 FOR XML PATH 拼接結(jié)果中會直接消失而且不報(bào)錯(cuò)。SELECT o.OrderID, STUFF(( SELECT , COALESCE(d.ProductName, 未命名) FROM OrderDetails d WHERE d.OrderID o.OrderID FOR XML PATH() ), 1, 1, ) AS ProductList FROM Orders o;這里給 ProductName 套上 COALESCE 是必須的不然產(chǎn)品清單會莫名少幾項(xiàng)。如果團(tuán)隊(duì)用的是 SQL Server 2017 以上版本STRING_AGG 會自動忽略 NULL寫法上可以簡化但只要全部值是 NULLSTRING_AGG 仍然返回 NULL外面要不要再套 COALESCE取決于你對空字符串和 NULL 的取舍。5.5 分組內(nèi)回填最近的非空值CROSS APPLY組合拳做快照表、狀態(tài)變更表時(shí)經(jīng)常要“向上找最近一次有值的記錄”。比如每個(gè)客戶每天有一條快照聯(lián)系方式哪天忘了更新就寫成 NULL現(xiàn)在要補(bǔ)全成最近一次非空值。SELECT s.CustomerID, s.SnapshotDate, COALESCE(p.Contact, 從未留過) AS Contact FROM Snapshot s OUTER APPLY ( SELECT TOP 1 s2.Contact FROM Snapshot s2 WHERE s2.CustomerID s.CustomerID AND s2.SnapshotDate s.SnapshotDate AND s2.Contact IS NOT NULL ORDER BY s2.SnapshotDate DESC ) p;這里的邏輯核心是 OUTER APPLY 加 TOP 1 按時(shí)間倒序取最近的非空值COALESCE 只負(fù)責(zé)最后兜底如果整個(gè)歷史里都沒有聯(lián)系方式就給個(gè)“從未留過”的文案。這個(gè)模式比自連接清晰也比窗口函數(shù)在老版本上的支持情況更穩(wěn)定。5.6 計(jì)算列加索引讓COALESCE的結(jié)果“物理化”如果“取第一個(gè)非空字段”的結(jié)果經(jīng)常用來做篩選、排序、JOIN而且表數(shù)據(jù)量很大那每次查詢都臨時(shí)算 COALESCE 是有成本的。更優(yōu)的做法是把它變成計(jì)算列再在計(jì)算列上建索引。ALTER TABLE dbo.客戶 ADD 首選聯(lián)系方式 AS COALESCE(手機(jī), 郵箱, ) PERSISTED; CREATE INDEX IX_客戶_首選聯(lián)系方式 ON dbo.客戶(首選聯(lián)系方式);計(jì)算列在數(shù)據(jù)寫入時(shí)就計(jì)算好了結(jié)果并落盤查詢時(shí)把它當(dāng)普通列用就行。COALESCE 是確定性表達(dá)式滿足計(jì)算列的要求。這個(gè)思路本質(zhì)上是用存儲空間換查詢時(shí)間在“以聯(lián)系方式反查客戶”這類高頻場景里收益非常大。6. 條件里的COALESCE語義陷阱和索引失效6.1 WHERE里的COALESCE為什么容易廢掉索引很多人寫“排除空字符串”的時(shí)候順手就寫了SELECT * FROM 客戶表 WHERE COALESCE(姓名, ) ;這條 SQL 能跑但它把姓名列包進(jìn)了函數(shù)里。對優(yōu)化器來說這是一個(gè)帶函數(shù)調(diào)用的非 SARG 謂詞很難直接在索引上做定位多數(shù)情況下會退化成掃描。數(shù)據(jù)量小時(shí)感受不到上了百萬行之后差距就很明顯。等價(jià)改寫是把它拆成正常的空值判斷SELECT * FROM 客戶表 WHERE 姓名 IS NOT NULL AND 姓名 ;兩條 SQL 語義一致但后面的寫法給了優(yōu)化器更多發(fā)揮空間。這也算是一個(gè)通用原則能用普通謂詞表達(dá)的就不要包一層函數(shù)。6.2 COALESCE(a, b) v 不等于“a或b等于v”這是一個(gè)比性能更要命的語義坑。有張訂單表里面有“對接人”和“負(fù)責(zé)人”兩個(gè)字段。業(yè)務(wù)員想查“張三參與的訂單”有人寫出了這樣的 SQLSELECT * FROM 訂單 WHERE COALESCE(對接人, 負(fù)責(zé)人) 張三;表面看意思是“對接人是張三或者負(fù)責(zé)人是張三都算”。但實(shí)際執(zhí)行邏輯是另一回事。翻譯回 CASE 你就會明白SELECT * FROM 訂單 WHERE (對接人 IS NOT NULL AND 對接人 張三) OR (對接人 IS NULL AND 負(fù)責(zé)人 張三);也就是說只要對接人這一欄有值即使它是“李四”系統(tǒng)也不會再去看負(fù)責(zé)人是不是張三。負(fù)責(zé)人是張三也沒用因?yàn)閷尤朔强找呀?jīng)把路堵死了。我在一個(gè)模擬項(xiàng)目里幫人排查過類似的 bug業(yè)務(wù)方反饋“張三的訂單查不全”最后發(fā)現(xiàn)就是這條 COALESCE 寫法導(dǎo)致的。開發(fā)者的本意是“任一匹配”寫出來的卻是“優(yōu)先順位匹配”。6.3 區(qū)分兩種需求寫出正確版本如果需求真的是“只要對接人或負(fù)責(zé)人任一等于張三”應(yīng)該寫成SELECT * FROM 訂單 WHERE 對接人 張三 OR 負(fù)責(zé)人 張三;如果需求是“優(yōu)先取對接人對接人沒填時(shí)才看負(fù)責(zé)人”那也得把邏輯拆開寫SELECT * FROM 訂單 WHERE 對接人 張三 OR (對接人 IS NULL AND 負(fù)責(zé)人 張三);這兩種寫法的共同點(diǎn)是都沒有在待篩選列上包 COALESCE 函數(shù)索引可用的可能性更高語義也一目了然。寫 SQL 的時(shí)候COALESCE 用在 SELECT 列表里做展示兜底大多沒毛病可一旦出現(xiàn)在 WHERE 條件里就要多問自己一句你想要的到底是“任一匹配”還是“順位匹配”我處理遺留系統(tǒng)時(shí)發(fā)現(xiàn)很多老代碼的 COALESCE 寫錯(cuò)了語義業(yè)務(wù)方說“找張三”實(shí)際跑出來少一截這個(gè)坑比它帶來的性能問題更麻煩。所以現(xiàn)在我會建議組里的同學(xué)記住 COALESCE 的“行為模型是 CASE”——你在 WHERE 里寫的每一處 COALESCE都值得翻譯回 CASE 讀一遍再上線。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
午夜啊啊| 99黄页网站| 99人妻| 超碰综合色| 国产激情在线观看| 婷婷丁香九月| 人人人干干人人干| 热热色青青草| 高清肉丝中文无码| 情色五月天网| 爱啪精品一区| 亚洲最大的黄色电影网站。| 久久精品欧美一区蜜桃| 91精品久久久久久77777| 午夜一级免费毛片| 亚洲日韩美女中文字幕乱| 日韩欧美亚洲自拍偷拍| 欧美Aⅴ| 东京热一区二区中文字幕| 全国男人天堂网| 亚洲污污网站| 97视频在线免费| 91骚妇| 91日日| 成人资源中文字幕在线观看天天| 97舔舔| 9+1视频网址| 亚洲无线码一区国产欧美国| 六月激情网| 精品人妻伦一二三区久久| 熟女六十路| 性色av蜜臀av色欲aV| 91福利网在线观看| 十八禁成人网站在线观看| 搞中出久久| 性影在线视频| 亚洲精品一区二区三区在线播放| 欧美日韩香蕉| 国产激情视频在线观看| 久久久艹艹艹| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 97在线免费观看| 91综合网站| 欧美激情视频一区二区| 人人爱人人乐人人操| 天美传媒婬乱| 色黄色美女大长腿午夜视频| 亚洲蜜桃V妇女| 亚洲精品一区二区三区在线播放| 久久九九99| 99久久这里只有精品| 四虎永久在线精品免费网址| 97超碰色屌| 欧美亚洲美少妇一区二区| 中文字幕精品亚洲熟女| 日本性感人妻91| 日韩操p| 国产精品女久久久久av爽| 无码聚合| 欧美日韩国产中文精品字幕自在自线,| 久久久久久夜夜夜夜夜| 久操| 26uuu国产日韩综合在线观看| 精品亚洲国产成人AV制服丝袜 | 任你干在线视频| 在线观看中文字幕| 国产又色又粗又黄又爽| 东京热男人的天堂网| 欧美美女自慰一区二区三区| 伊人玖玖网| 国产精品夜夜夜| 天天肏天天干| 狠狠综合| 97视频新免费| 亚洲av综合色区图片亚洲| 91free福利| 亚洲精品天天影视综合网| 天天操天天7| 美女久久久久久久久久久| 人人贴人人摸| 99热亚洲| 色天天野狼综合社区| 久久人妻| 久久超碰久| 蜜臀久久99'精品久久久| 91另类| 亚洲精品日韩国产欧美| 久久同城AV| 欲色综合| 无码 有码 国产18p| 嗯啊不要啊在线| 校园春色亚洲无码| 日韩 国产 欧美自拍| 亚洲av乱伦色图网站| 青青草五月天| 蜜乳成人AV| 色色五月婷| 97欧美色综合| 成年人一级黄色毛片大全在线观看| 91在线免费观看处女| 97综合激情| 亚欧国产无码精品在线| 高清孕妇孕交 交孕妇| 亚洲乱码精品一区二区| 国产九九久久久精品| 操久久久久| 殴美大黄片| 色情婷婷久久五月天| 中日韩免费看男女操逼大全| 99久久com免费视频′| 久草毛片| 六月丁香五月婷婷| 97综合激情| 99免费视频| 国产日韩美女小穴视频网站不卡| 人人看人人摸人人色| 99婷婷一区二区| 久久综合九九| 午夜舔阴达高潮视频免费看| 婷婷亚洲中文字幕在线| 日韩欧美亚洲自拍偷拍| 97se综合网| 岛国大片国产| 十八禁电影伊人网| 无套内射性感少妇视频| 熟妇人妻精品一区二区| 一区二区激情国产熟女| 97精品免费| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲欧洲自拍| 爽爽爽免费视频| 熟妇xxxxx性春色| 久久久久78| 丝袜美腿制服人妻二区中文字幕 | 青青免费在线视频一区| 男人把坤坤插入女人的下体 | 男人的天堂无码| 伊人色综合网电影| 人妻少妇精品视频一区二区三区| 夜夜高潮夜夜爽高清视频一 | 色综合五月天| 成人五级久久| 久久9999 | 日韩欧美中文字| 欧美国产伊人久久久久| 最新国内自拍av免费| 欧美综合狠| 99亚亚热| 99热只有这里有精品| 神马久久久久久久| 国产偷人妻精品一区二区在线| 亚洲暴力强奸AV| 男人的天堂kva| 内射中国少妇高清视频免费视频 | 蜜桃AV天堂| 五月婷婷久久综合| 女欧美一区二三区| 亚洲中字慕不卡| 日本 欧美 亚中文字幕| 最新国内自拍av免费| 美女网站黄页| 大香蕉在线视频15| 99热精品在线播放| 国产伦精品一区二区三区视频女| 亚洲成人黄色在线观看| 美女t无毒不卡不卡| 久久精品72| 欧美精品日韩一区二区| www.久久制服糖| 国产国产亚洲一二三久久| 日本A级视频| 久久精品亚洲成a人天堂| 91免费看一区二区三区| 亚洲伊人青青草| 亚洲色图欧美色图制服丝袜| 久久精品72| 99热久| 一类无码操逼视频| 精品无码欧美三级| 欧美综合1性辶| 男生女生啊啊啊啊| 国产成人天堂| 伊人久久大香线综合无码| 麻豆这里只有精品| 色乱二区| 亚洲暴力强奸AV| 国产欧美在线观看免费观看| 国产精品不卡av免费在线观看| av天堂加勒比| 久肏视频字幕| 欧美日本视频一区| 少妇99| 久久一二三四五六七八九区区| 日本不卡高清免v欧美日韩在线观看| 天天日B夜夜干B时时操B| 国产精品视频91久久| 熟女人妻一区二区三区| rion磁力链接| 久久超碰com| 四虎影视国产精品| 日本在线15p| 欧美高清在线| 综合欧美色图| 日日骚中文字幕| 熟人人妻少妇精品久久| 亚洲色欧美| 清纯唯美亚洲| 精品国产91内射久久| 久久久精品91八戒| 综合免费无码中文| 最新国产亚洲精品精品国产亚洲综合 | 人妻一二三区| 亚洲欧洲国产综合av| 黑人操一区二区| 翔田千里一区二区三区奶水| 国产精品嫩草影院免费| 一级啊性爱在线视频| 亚洲啪啪性视频| 久99| 丰满少妇人妻久久久久久| 亚洲一二三精品久久网| 天天综合~91| 啊啊啊啊好疼| 夜夜天天噜狠狠爱2021| 欧美天天拍| 欧美色图天堂网m| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 日韩精品亚洲一二三| 国产久久天堂资源| 欧州色图区| 午夜久久一区二区无码中出| 色大师网站www永久网站视频| 欧美韩国你懂得在线 | 中文字幕精品码亚洲| 婷婷综合伊人一区| 亚洲AV无码黄色强奸| 亚洲高清无码免费观看视频| 亚洲免费精品一区| 亚洲熟妇AV日韩熟妇在线| 殴美色网| 91亚洲色人| 免费一级欧美片片线观看| 天综合网| 亚洲91网站| 国产91丝袜 在线播放| A级片日韩欧美国产欧美视频精选观看| 中字幕人妻一区二区三区| 日韩免费看黄片| 五月丁香综合网| 欧美熟女妇同| 人人操人人肉久久精品| 欧美日韩国内不卡| 久久偷拍人| 中文 人妻 制服| 偷拍三区| 欧美另类自拍 | 五月天婷婷色| 日产成人久久| 极品欧美一区二区三区| 久久极品一区二区| 久久久久婷婷精品av电影| 精品高潮| 在线另类| 97亚洲综合在线| 精品欧美А∨无码黑人大荫蒂| 99视频只有精品| 蜜桃视频啊啊啊啊| 四虎国产精品永久地址入口| 久久九精品| 国产自制av蜜乳| 色五月婷婷中文字幕| 亚洲色悠悠久久88| 日韩人妻有码免费视频| 熟女在线视频| 精品福利| 一区二区偷拍拍视频| 啊啊啊轻点在线观看| 啪啪视频亚洲第一| aaa淫乱视频| 超碰在线一区二区三区| 色优久久| 久久久555| 桃花色涩综合影院| 人妻少妇无码| 睡产熟女乱伦| 伊人网一本| 欧美一级欧美三级在线观看| 美女网站91| 欧美一级色| 97ai亚洲| 婷婷五月花| AV有码在线| 婷婷九月| 在线a亚洲视频播放在线| 婷婷情色综合网| 亚洲另类春色| 欧美精品第四五页中文字幕在线观看| 日韩免费av片高清无码| 女生自91网站| 国产 丝袜 欧美中文 另类| 学生妹天天看| 精品一区二区成人动漫| 91欧美色| 日本一区二区电影网站| 日韩中文字幕视频| 夜夜骑日日| 五月综合激情网| 人人妻人人玩人人澡人人爽| 亚洲s在线观看| 国产成久久综合片| 欧美少妇高潮视频| 激情文学网伊人| 精品福利| 青青操视频在线| 超碰精品在线| 少妇久久| 中出91视频| 婷婷精品| 日本国产亚洲一区在线观看| 东京男人天堂| 亚洲最大的黄色电影网站。| 大地资源在线观看中文第二页| 99热销国产这里有精品| 久久久性爱视频| 亚洲国产成人精品无码专区| 日韩猛交| 欧美在线中M| 99免费视频| 亚洲欧美色图小说| 亚洲第二页| 国产白嫩精品久久| 色官网在线| 亚洲成a人v欧美综合天堂下载| 国产黄色动态精品| 五月色丁香| 久久性爱精品一区| 欧美v日韩v亚洲v最新在线| 久久精品夜色国产亚洲AV| 2018色综合天天操| 免费一级性爱久久| 偷拍盗拍亚洲色图图片| 超碰97综合网| 日韩超碰精品综合| 久久黄黄| 国产激情在线观看| 欧美精品成人在线播放| 亚洲欧美电影| 久久国产精品一区二区| 欧美人妻另类在线| 欧美懂色综合网| 97一本大道亚洲一区| 天综合中文| www.人人cao| 亚洲成人免费中文字幕| 26uuu最新| 国产熟女自拍| 国产99999久久精品| 手机不卡视频不卡在线一二三区 | 亚洲 日本 不卡| 亚洲和欧美裸体美女双飞视频| 日本精品一区三区| 天天干天天干天天| 亚洲色五月| 一级黄色牲爱A级片| 久久直播国产| xxxx网站亚洲精品| 一区操逼日比视频| 韩国午夜理伦三级好看| 亚洲1区2区三区高清中文字幕| 手机午夜电影神马久久| 国产成年女黄特黄| 欧美激情激情xxxx欧美专区| 亚洲国产精品无石码久久 | 五月丁香综合网| 91精品国产高清久久久久久,亚洲成人| 人人操我人人干| 久久草草亚洲蜜桃臀| 天天看天天日| 日韩啊V| 香港澳门日本三级网站| 伊人久久大香线蕉无码| 国产一区二区三区影片| 欧美亚洲丝袜人妻制服99| www.99色| 亚洲色天堂日韩中| 午夜呻吟欧美| 欧美中字二区| 欧美亚洲韩国视频十五区| 玖色av| 久操国产在线| 久久只有精品| 亚洲色系另类精品国产| 亚洲欧美在线观看2021| 超碰人人在线| 综合干干干av久久久综合网 | 色嗨嗨在线| 国产激情在线| 色妺妺在线视频| 2025亚洲男人天堂| 国产妇女精品视频青青草| 东北操逼| 超碰欧美97| 在线播放成人高清免费视频| 性色av蜜臀av色欲aV| 自拍偷拍2025在线观看| 亚洲……91| 欧美成人综合| 久久精品国产亚洲粉嫩| 午夜福利激情在线视频| 色综合色欲色综合色综合色综合| 成人影 天天操 亚洲| 极品粉嫩少妇视频| 人人操人人舒服| 91人精品妻入口| 日本性爱不卡视频| 男人的天堂2018东京热啪啪啪| 一区麻豆 高清中文字幕| 97资源站久久| 曰韩人妻中文字幕在线| 日韩欧美字幕亚洲一区二区 | 国产无马在线| 五月天社区| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 一区二区 韩日AV| 75大香蕉| 超清中文乱码字幕| 日韩无码成人电影| 99色婷婷中文字幕乱色| 日日骚网站| 最新岛国大片| 性色一线| 欧美黑人与女人91| 岛国艾薇凹凸视频天堂| 91美女在线视频| 欧美日韩中文视频播放| 国产精品熟女丝袜一区二区| 91麻豆天美国产| 国产97色在线| 亚洲 欧美日韩 另类| 天天摸天天碰天天添青青| 友优传媒精品在线一区二区| 激情干在线| 亚洲免费97免费| 色噜噜狠狠色综无码久久合欧美| 大香蕉一线视频| 九九拍拍精品视频在线播放| 日本成a人v网站在线观看| www.色99| 久久久极品| 婷婷中文网| 国产精品久久久久久久久久久久久久久| 91视频综合网| 亚洲精品丝袜-不卡成人免费……| 国产风韵犹存熟妇三区| 先锋色眉乱伦资源| 亚洲欧洲无码一区夜| 岛国黄片网站| 天天综合网在线| 欧美色图综合| 精品一区二区三区最新| 69XX一中文字幕人妻91| 九九九九九九亚洲| 欧美不卡在线一区二区| 九一综合精品视品av| 啊啊啊啊啊在线| 玖色AV| 一区二区中文| 欧美色图片91| 欧美性爱无码一区二区三区| 9精品在线| 国产av激情无码久久天堂| 熟妇艹鸡八| 美国精品国产精品| 大香交| 欧美在线播放aaaa| 日日躁夜夜躁狠狠躁超爽| 欧美性爱五月天| 国产精品农村妇女| 久99久视频精选| 84YTCOM性无码| 操逼内射干逼白丝91| 免费一级精品啪啪视频| 午夜福利在线合集| 激情五月天丁香社区| 精品免费囯产一区二区三区| 久热伊人99re| 国产精品ⅴ无码大片在线看.| 欧美精品双插| 哈哈操电影AV| 国产成人欧美一区二区三区的国产| 日韩精品作爱导航| 亚洲天堂 视频你懂的| 日本大香蕉综合网| 75大香蕉| 日本三级日本三级99| 操人妻视频| 人妻精品一区二区全免费| 久久夜黄色无码A级大片| 国产在线激情| 人妻出轨一区二区三区| 亚洲av影院在线观看| 亚洲无码一区成人免费午夜| 伊人久久大香线综合无码| 精品v日韩欧美国产| juliaann欧美丝袜办公室| 久久综合乱子伦国产免费| 国产精品黄色三级av| 中文字幕一区二区三区人妻不卡| 伊人久久大香蕉线AV五月天| 九九久久精品| 能在线播放的国产三级| 伊人国产成人av网站| 97热视频在线观看| 宅男午夜在线视频| 强奸乱亚洲| 熟妇xxxxx性春色| 91综合无码| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 91操熟女| 蜜桃网熟妇| 蜜桃精久三区| 亚洲日韩一区电影| 人人摸人人叼| 国产成人无码a| 欧美熟妇精品黑人巨大91| 久久99精品国产| 九九热精品在线| 动漫爆乳3D奶水一区在线观看| 国产91av在线播放| 亚洲综合欧美| 大香蕉线| 天堂亚洲欧美| av2014 日韩在线中文字幕| 久久久久78| 高清不卡视频| 亚洲18禁| 久久久啊啊| 开心激情婷婷| 日本色婷婷| 日韩国产中文字幕| 国语对白在线播放视频| 日韩性爱再线视频| 欧美日韩国产中文精品字幕自在自线 | 日本午夜久久电影| 亚洲欧美激情在线视频| 国产日韩在线播放| 久久精品国产96精品亚洲拳交| 亚洲熟女精品| 国产在线激情视频| 精品中文字幕第一页| 国产婷婷综合在线观看| 玖玖爱在线视频免费观看| 女性91网站| 天天看天天日| 国产精品福利资源在线尤物| 一级性爱视频免费在线| 天堂69亚洲精品中文字| 久久精品国产亚洲妲己影视| 操婢日韩| 国产69精品久久久久99尤物| 播播亚洲小说亚洲| 99久久99九九99九九九| 99精品免费| 午夜精品久久久久久久男人的天堂 | 91黑人无码激情在线| 性在久久久久久| 午夜无码精品免费看性色| 国产精品蜜乳AV| 伦理片秋霞免费影院| 日本污ww视频网站| 久久久性少妇| 欧美综合网1| 欧亚成人在线视频| 97超碰中文字幕| 后入综合久久| 丰满人妻一区二区三区| 国产偷人伦激情在线观看| 操逼视频国产无套| 亚洲最大AV网| 久久人人妻| 国产熟女一区二区丰满| 日日干夜夜欢| 久久久四区| 无遮挡一级毛片视频免费的| 五月丁香社区婷婷日韩欧美精品影院 | 无码黑人精品一区二区三区三| 国产精品岛国片在线观看| 桃色五月天| 超碰性爱97| 午夜久久久| 中文字幕在线免费观看 | 另类图片综合| 日韩欧美aⅴ综合网站发布| 欧美精品999| 青青色综合| 人妖欧美一区二区| 中文AV制服乱伦| 天天日天天干天天整| 亚洲精品819| 国产女人9999| 亚洲成人激情小说视频| 欧美v亚洲v日韩v最新在线二区 | 久久专区| 欧美做爰无码A片视频| 67194无码不卡| 超碰色美女| 超碰国产精品无码| 激情综合五月天| 综合91网| 91久久九九精品国产综合| 国产精品秘 福利姬在线观看| 成人老鸭窝人人在线视频| 青草伊人网| 日韩精品人妻一| 97 亚洲 日韩 欧美 在线| 噜噜瑟| 亚洲色图欧美色图日韩色图| 青青草在线视频人人想人人上| 久久天堂网| 精品中文字幕一区二区| 欧美亚男人的天堂| 国产精品96久久久久久| www超碰| 中字一区| 国产日韩欧美亚洲精品95 | 欧美黑人精品在线播放| 97超碰天天爱天天爱| 精品九九九九九九| 五月婷婷激情网| 蜜臀99久久精品| 日本高清_区二区三区| 无码视频一区二区| 九九视频黄色片| 岛国AV一区二区电影| 婷婷爽人人婷婷爽视频| 920日本午夜免费| 91无码人妻精品一区二区三区蜜桃| 日本人人操人人操| 呻吟 欧美 日本 中出| 国产大学生口爆吞精合集| 欧美韩国你懂得在线| 国产精品麻豆免费视频| 97色欧州| 小视频国产| 蜜臀久久99精品| 国产精品一区av在线| 夜草欧美| 欧美色性爱| 免费草草草草草视频| 人人摸人人干人人拍97| 无码人妻丰满熟妇区毛片| 欧美疯狂做爰xxxx| 亚洲色人阁| 懂色综合久久久| 91久久久亚洲| 大香蕉国产中文自拍| 黄片视频,下载| aa片毛片| 欧美黑人与女人91~| 手机看片日韩人妻| 天欧美在线| 丁香五月天堂| 人人操,人人液| 上床不卡网站| 久久无码电影| 欧美色图综合网| 99国产天美| 久久久亚洲欧美综合| 国内精品99999| 97超碰69| 91爆操视频| 特污精品女优骚货黄色视频在线免费观看| 久久超碰久| 亚洲无码成人精品| 欧美第五页| 殴美,日韩国产伦精品| 日小BB小视频| 欧美瑟综合| 男人的天堂成人的社区| 精品国产乱码久久久久久口爆网站| 日韩91网| 黄色不卡视频| 天天综合色| 操逼免费视频无码国产| 熟女熟妇一区二区三四区| 国产视频一区二区三区久久亚洲天堂| 黄色AAAAA欧美| 啪啪啪亚欧美视频| 亚拍在线| 国产精品情侣啪啪| 欧美人人AAA| 日本黄大片在线观看视频| 亚洲综人| 热久日综合| 日韩AV电影网站 | 亚欧美色图| 97欧美精品综合| 综合色播| 中国一区二区亚洲人妻| 天天干天天操天天操夜夜操天天操| 亚洲91综合| 99久久综合| 五月婷婷综合在线| 黄色一级视| 亚洲综合另类小说色区亚洲成av人片在www | 色狠狠一区二区三区香蕉| 国产九区| 欧美综合色站| 玖色AV| 99九九精品| 一级久久久久久久久久久| 自拍偷拍第26| 97综合久久| 性欧美999| 熟妇一区,二区,三区。| 亚洲色情在线影视| 亚洲永久AV无码精品秋霞| 超碰超碰95| 婷婷久久综合久| 久久精品国产免费观看99| 国产精品亚洲天堂网址| 亚洲天堂五月天国产| 校园春色五月天| 久久国产精品一区二区| 99热在线只有精品| 人妻少妇精品无码专区二区密桃| 偷拍片久久| 91少妇香蕉久久精品| 国产又大又粗又长视频在线| 精品久久久久黄少妇| 夜夜爽妓女| 无码人妻一区二区一牛影视| 超91综合网| 久久麻豆一区二区| 日本特黄f c2| 欧美少妇大量自拍视频在线观看| 亚洲欧美一区二区三区在钱蜜桃| 日日干夜夜干| 色老汉玖玖爱| 内射日韩大臀美女| 久久综合日韩亚洲欧美| 亚洲色图a| 欲射影视| 欧美青青草视频| 99精品无码| 欧美亚洲手机在线| 激情综合网激情综合| 中文AV制服乱伦| 被男人吃奶很爽的毛片| 成人性爱av| 久久久久久国产无码精品| 操逼视频免费日韩无码| 99视频自拍| 久久久久成人蜜桃精品| 亚洲综合性感在线| 色偷综合| 天天天干977| av影片在线观看不卡| 国产亚洲深夜激情| 久久久久久久亚洲Av无码| 91精品国产高清久久久久久,亚洲成人 | 国产超碰在线| 91精品人妻一区二区三区蜜桃臀 | 91丨九色丨国产丨人妻在线 | 亚洲91极品| 国产一级久久久| 天天射夜夜| 99在线观看视频在线高清| 青青草中文字幕| 亚洲日本激情| 9999免费精彩视频| 国内精品不卡无毒99999| 激情视频一二三| 四虎av在线| 日韩熟女操逼| 深夜激情无码| 亚洲AV乱码专区国产噜噜亚洲| 97频视在线| 97天天操| 午夜福利精品| 久久久久久久 九九九九九九九| 大肉棒导航| 欧洲精品二区| 高清成年美女黄网站免费大全| 五月天婷婷色色| 成人热久久精品| 欧美精品黑人猛交高潮| 污污汅18禁网站在线永久免费观看 | 色色五月婷婷| 久草精品视频| 亚洲人成在线放东京热| 国产精选三级在线观看| 婷婷情色五月天| 蜜臀AV午夜精品久| 操逼不卡中文字幕| 亚洲AV乱码专区国产噜噜亚洲 | 亚洲视频1区| 3571色综合一区二区二区| 亚洲综合校园春色| 久久综合九色综合欧洲98| 伊人五月天| 亚洲色图 图片| 日本韩国国产精品一区| 青青草日韩无码| 熟女91网| 日韩欧美aⅴ综合网站发布| 国产蜜臀精品一区免费尤物| 麻豆一区二区三区在线看| 天天操天天射天天日| 伊人大香蕉在线| 国产精品久久泡妞网站| 天天躁日日躁AAA片李宗瑞| 国产精品色哟哟| 91操熟女| 玖玖视频在线资源一区二区三区| 999久久久久久久久| 亚洲中文日韩欧美大香蕉视频| 亚洲A色| 永久电影三级在线观看| 蜜臀av一区二区三区免费观看| 亚洲激情深爱文学小说网站| 久久九九视频九九视频| 九九九九九九九九九五码| 亚洲无码精品AV久久久| 亚洲精品一区二区三区新线路| 中文字幕丝袜| 9久热| 少妇淫妇久久久久久久| 日本三级大片| 超碰色图| 98色网| 色吧91| 亚洲精品97在线| 麻豆精品一区二区三区四区免费观看| 五月丁香综合网| 日韩小电影| 亚洲精品 大香蕉| 国产精品片| 福利风月五月天影院| 久久久久亚洲Av无码专区老牛影视| 97香焦色区| 亚洲视频中文一区| 国产农村妇女精品一二区| 国内精品嫩模A∨私拍小视频| 青青草亚洲一区| 91被操| 好屌色综合| 日美免费黄片| 97鸡把在线视频| 日韩AV电影网站| 亚洲 小说 欧美 激情 另类| 97精品第3页| 日本高清有码网址视频| 伊色久人大在线| 嗯啊免费视频| 精品毛片av一区二区| 亚洲日本天堂| 色婷婷激情| 久久久性| 亚洲国产中文字幕| 色播五月婷婷| 精品人妻一区二区三区四区石在线| 国产盗摄美女如厕大神作品在线观看| 日本不卡高清视频| 欧美日韩人妻精品一区二区三区| 蜜臀久久99精品久久综合| 国产午夜福利电影免费在线观看| 9999久久久久| 久久久久久午夜男人的天堂| 伊人网青青| 亚洲男人天堂视频| 青青草原人妻| av在线不卡一区二区三区| 加勒比色99999| 欧美日韩淫加| 美国一区二区免费视频| 久久超碰97| 九九九九九精品十六| 99视频精品| 1人人看人人摸人人操| 97日韩欧美亚洲| 久久九九一区二区三区成人| 亚洲国产欧美中文永久| 网站A V在线| 超碰久草| 操b网站亚洲无码| www九九热| 一级特黄aaa大片在线观看成人一级片在线观看 | 搡老女人老91妇女老熟女| 嗯,啊。舔我逼| 日本有码影片下载| 国产精品久久久三级无码| 大香蕉乱级| 美女黄站| 欧美第五页| 福利天堂| 亚洲 欧美 另类 综合 偷拍| 综合婷婷| aaaa少妇高潮大片| 91看黄片| 视频不卡中文字幕| 久久久无码精品人妻二区| 久久大线蕉一区| 亚洲色图超碰在线| 九月婷婷久久| 无色无码| 一区操逼日比视频| 女人与公拘交酡2020视频| 躁躁躁日日躁2020| 五月天精品| 色偷综合| 九九九九九九九九九九九九九九九女| 久久熟女人| 色99在线| 深爱五月婷婷| 激情久久av一区av二区av| 91精品国产日韩欧美综合| 丁香五六月啪啪| 天天综合91| 女色综合| 七月婷婷综合| 熟女人妻精品一区二区视频| 综合亚洲欧美| 中文字幕福利视频一区二区三区在线观看| 色在线69堂| 久久99草| 久9久精品视频| 伊人精品视频| 欧美性爱网97| 超碰在线97国产| 青青草日本中文字幕 | 人人 操人人 操人人| 人人操人人摸avav| 内射小黄片| 欧美的性爱网站免费| 操www| 中文字幕91页| 伊人黄色视频免费观看| 竹菊影视国产一区二区| 国产精品熟女丝袜一区二区| 亚洲夜夜欢无码一区二区 | 国产精品熟女一区二区三区| 99re免费| 亚洲天堂在线怕怕视频| 色欲av一区二区三区蜜芽| 中国一级操逼视频| 国产不卡免费在线视频| 国产亚洲禁久一区二区| 日韩成人网址| 日日日日日| 青青青操| 亚洲大色堂| 亚州大图综合色图| 91国产丝袜白虎| 丰满人妻一区二区三区免费| 亚洲高清视频在线免费观看| 国产美女口爆吞精视频| 曰本人妻人人澡人人夹| 国产女生在线| 欧美综合站| 麻豆性爱视频在线播放| 超碰免费欧美7| 男人的天堂VA| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 少妇三p| 国产辣妈在线视频福利| 日本精品无码三级网站| 激情色播| 久久久久9999妇女| 精品久久久一本一道| 97色碰| 岛国在线一区二区三区| 丁香六月婷婷久久综合| 操逼精品视频| 亚洲 欧美 日本 国内 首页| 婷婷久久五月综合激情| 日va操| 熟女丝袜视频| 久久久精品久久| 久久久97| 99精品成人免费看| 亚洲限制级在线| 欧美淫乱视频| 操啊国产| 97五月天| 久久6热精品99视频| 国内伊人久久久久久网站视频| 超碰在线香蕉| 操人妻丝袜高跟| 骚日日av| 日本性爱欧美性爱| 九九九九久久久| 久久精品99久久久久久| 婷婷色综合欧美日韩| 国产欧美亚洲精品a第2页| 久久久久久久久久久久久久久乱码| 亚洲素人综合| 欧美性爱无码一区二区三区| 艹我哪美一区无码| 日本久久久精品电影| 欧美呦呦性爱| 日韩偷拍色图| 亚洲资源吧| 午夜120视频在线观看| 福利风月五月天影院| 欲色综合| 日韩av不卡在线观看| 中国黑人三级片网站上区| 91春色| 99在线免费视频| 婷婷五月天色网| 国产专区第一页| 国产偷仑| 国产日韩精品suv| 婷婷久草一区二区三区| www男人天堂| 国产懂色精品国产av| 97精品国产精品免费观看| 亚洲āv网址在线观看| 日本 成 人 小说 电影 一区二区| 丝袜视频网国产90| 女人喷水视频在线观看| 国产精品久久久九九九| 特级特黄一级毛片免费| 红桃视频高潮| 欧美不卡五十路| 国产亚洲 中文欧美久久| 色黄色美女大长腿午夜视频| 久久久久久91香蕉国产| 欧美性爱精品七区| 蜜臀亚洲中文| 天天射天天操天天干天天吃2018| 国产欧美日韩在线观看麻豆传媒公司| 欧美—性—交—色| 性爱视频久久| 久久啊啊| 天天综合~91入口| 啊啊啊好想要| 内射中出日韩在线观看视频| 日韩性爱啪啪视频| 成人老鸭窝人人在线视频| 99久久久久久亚洲精品不卡| 久久111| 天天干干天天干干| 精品二999| 久久国内| 9精品久久久久| 国产亚洲一黄| 国产精品视频内谢女人| 9超碰免费| 日韩中文字幕人妻视频| 青操影院| 丁香婷婷色五月| 欧美色女人| 亚洲精品国产精品乱码不卡| 国产精品成人福利在线| KK色在线影院| 人妻天天夜夜爽一区二区| 麻豆三极片| 久久大线蕉一区| 欧美三级中文字幕hd| 外国免费性情大片| 亚洲综合另类欧美久久久| jk白丝没脱就开始啪啪| 国产精品另类一区大香蕉| 91爱综合| 萌白酱自拍视频| 凹凸 69堂 在线播放| 操狠狠| 脫衣舞一区二区三区| 97伊人超碰| 91亚洲青青草原精品1区| 强奸乱伦亚洲第一页| 欧美色91| 欧美性爱一内片一区二区三区| 国产女人与拘做受视频免费| 超碰精品97| 天天日日日射| 人人考人人摸人人干| 中文字幕欧美日韩三级| 日韩综合97P| 麻豆人妻精品一区二区| 欧美1区二区三区公司| 久久精品操| 青青草色情网站视频| 色色五月婷婷| 亚洲成人性| 亚州欧美色图| 欧美高潮| 2025亚洲男人天堂| 亚洲欧美中文日韩视频中国语| V A在线| 青青草AV色| 青青草色情网站视频| 超碰av人人人| 日韩亚洲国产视频| 国产粉嫩蜜臀av一区二区三区| 黄站在线免费观看| 秋霞男人网| 99激情| aⅴ日韩成人电影av在线免费看av大全| 蜜臀久久99精品久久久久| 乱操9999| 精品一区二区三区四区女| 色婷婷六月| 乱伦3P视频| 久久久精品中文字幕爱豆| 欧美翘臀视频网站一区二区三区 | 性色av婷婷久久一区二区点复制| 国产真乱mangent| 啊啊啊啊啊啊在线| 色香91| 久草综合视频| 亚洲情色五月天 | 无码天堂| 97美日韩视频| 伊人网一本| 色妇91| 日本东京热大香蕉a片| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 亚洲欧洲日韩中文字幕一区| 蜜臀久久99精品久久久久久无删减| 97一区二区三区视频| 国产四虎在线| 屌逼麻豆| julia高潮后不停追击中出| 国产一区二区视频在线播放| 午夜偷拍久久熟女| 国产av强奸美女| 天天懆天天日| 尹人免费观看视频在线| 亚洲视频中文一区| 国产性爱强奸乱伦大全| 男人天堂资源| 久久激情婷婷| 大香蕉综合网| 9999久久久| 人人操欧美风骚| 福利视频合集| 青娱乐淫乱1314| 黄片免费日韩| 91被操| 狠狠色噜噜狠狠狠狠2018| 尹人免费观看视频在线| 91P0RNY大屁股人妻| 韩国三级一线观看久| 无码高清少妇久久| 国产亚洲精品激情| 国产精品久久久久久久AV大片 | 丁香婷婷激情五月天无毒不卡| 夜夜狠狠躁日日躁色视频| 欲香欲色天天天综合和网| 嗯嗯啊好大| 日韩 女同 综合| avav青青草久久夜| 亚洲欧美97√| 欧美亚洲中文| 性videos欧美熟妇hdx| 草草影院最新网址| www.人人cao|