看板 Database 關於我們 聯絡資訊
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) 資料庫名稱:SQL SERVER 資料庫版本:2012 內容/問題描述: 最近在看CODE 看到這行 WHERE (ISNULL(@WT_NO, '') = '' OR A.T_NO LIKE @WT_NO + '%') AND (ISNULL(@WT_DATES, '') = '' OR B.T_DATE >= @WT_DATES) 請問這行應該怎麼解釋比較好? ISNULL(@WT_NO, '') = '' 我個人的解釋是 如果當@WT_NO裡面的參數 EX. @WT_NO @WT_NO 1 -> 1 NULL '' 2 2 有NULL值的話 就把NULL值用''去取代 再去比對 是否 = '' 所以當真的有NULL值的話 (ISNULL(@WT_NO, '') = '' OR A.T_NO LIKE @WT_NO + '%') 就會被當成true 就會繼續跑and的那行 不知道我這樣的理解是否正確? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.249.8 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1463199203.A.4A1.html
smlboby: Yes 05/14 22:36
jonce007: 有值就依條件查詢,無值就全部列出。 05/14 23:05