tsql - Does int in (SELECT varchar...) work? -


i'm trying modify code written bey else generating model report being built in business intelligence development studio (microsoft reporting services).

i wondering if necessary?

where (convert(varchar,r.kommunenr) collate database_default in (select item dbo.split('"+ @kommune+ "', ',') split_1))" 

$kommune text built this: "kommune1,kommune2,kommune3,..."

is okay check int (r.kommunenr) in (select item dbo.split('"+ @kommune+ "', ',') split_1) reckon varchar. this

where (r.kommunenr in (select item dbo.split('"+ @kommune+ "', ',') split_1)) 

the problem can't run code, atm have code, , not permission run it.

in tsql implicit conversions, varchar cast int , not vice versa.

so second query fail if r.kommunenr int , dbo.split returns varchar not castable int.

if want benefit index on r.kommunenr, may try this:

select  *    r   kommunenr in         (         select  case isnumeric(item)                 when 1                                         case                         when cast(item float) = cast(cast(item float) int)                                                         cast(cast(item float) int)                         end                 end            dbo.split(@kommune) split1         ) 

this handle edge cases 1e8 numeric not directly castable int.


Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -