Convert query from MySQL to SQL Server -


i trying convert below mysql query sql server.

select @a:= @a + 1 serial_number,     a.id,     a.file_assign_count  usermaster a,     workgroup_master b,     (         select @a: = 0     ) c a.wgroup = b.id     , file_assign_count > 0 

i understand := operator in mysql assigns value variable & returns value immediately. how can simulate behavior in sql server?

sql server 2005 , later support standard row_number() function, can way:

select row_number() on (order xxxxx) serial_number,     a.id,     a.file_assign_count usermaster join workgroup_master b on a.wgroup = b.id file_assign_count > 0 

re comments: edited above show over clause. row-numbering has meaning if define sort order. original query didn't this, means it's rdbms order rows returned in.

but when using row_number() must specific. put xxxxx, put column or expression define sort order. see explanation , examples in the documentation.


the subquery setting @a:=0 initializing variable, , doesn't need joined query anyway. it's style developers use. not needed in sql server, because don't need user variable @ when can use row_number() instead.

if sql server database returning 2 rows mysql database returned 1 row, data must different. because neither row_number() or mysql user variables limit number of rows returned.


p.s.: please use join syntax. has been standard since 1992.


Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -