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
Post a Comment