作者MOONY135 (谈无慾)
看板Database
标题[SQL ] ISNULL问题
时间Sat May 14 12:13:20 2016
(针对
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://webptt.com/cn.aspx?n=bbs/Database/M.1463199203.A.4A1.html
1F:→ smlboby: Yes 05/14 22:36
2F:→ jonce007: 有值就依条件查询,无值就全部列出。 05/14 23:05