我有一段存储过程中的t-sql代码,它根据给定的参数执行搜索。我似乎无法理解下面的语句背后的逻辑:T-SQL if isnull()构造
if isnull(@LoginName, '') = ''
select @LoginName = null
这里是我的思维方式:ISNULL是cheking的LoginName是否为空,如果是,那么它分配“”(这也是空,对吧?),然后将它与''(null?)进行比较。然后,如果表达式为真 - 为变量LoginName分配一个空值(为什么?它首先已经是空的!)。 有人可以在我的黑暗头上洒一些光。我根本不明白这个逻辑。谢谢。
NULL和''是不同的东西。 – Rob
@Rob:除非你使用Oracle。也许user2785029使用Oracle之前和那里一个空字符串被视为NULL。 –
@a_horse_with_no_name - 我不知道 – Rob