tsql - I cant figure out what this SQL query is -
declare @loginid nvarchar(50) set @loginid = null select * loginusers loginid = @loginid or @loginid null if execute statement rows dont understand how condition processed here.
if @loginid null clause doesn't apply or what?
let me add 2 cents here. try explain code line line. tsql processed in procedural way.
you have:
1- declare @loginid nvarchar(50) 2- set @loginid = null 3- 4- select * 5- loginusers 6- loginid = @loginid 7- or @loginid null - the first line (1) defined variable
@loginid, type - the second line (remember one, important) assigned value
nullvariable@loginid
then in query, matters where clause , use loginid = @loginid or @loginid null asking here is:
is table field loginid equals defined variable @loginid or equals null
here must remember logic table or
a | b | result (a or b) 0 0 0 1 0 1 0 1 1 1 1 1 so, remember when said assigned value important? here it, database field loginid not have null values , variable (if there code in between assigning , query) null, therefore in logic table 0 or 1 = true condition true rows in table.
hope understand better.
Comments
Post a Comment