Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

get table without Added column in sql query

Tags:

sql

sql-server

I have a Process table in sql server database like this:

Process Table

I need to select Process if Rolename exists in to RoleTable like this:

 select ID,WorkflowXML 
    from 
    (
    select m.c.value('@RoleName','nvarchar(max)') as Rolename,p.*
    from Process as p
    outer apply p.WorkflowXML.nodes('/workflow/Tasks/Task[@type="start"]/TaskUsers/TaskUser') as m(c)
    ) as Pro where Pro.Rolename in
    (SELECT * from RoleTable)

In this select Rolename adds to Process. I need to only Process table. I can add Process fields (ID,WorkflowXML) to query. If I change Process table design I should edit query. This is not very good.

Is there a way to select Process table in query without adding Process fields like this?

select Pro
        from 
        (
        select m.c.value('@RoleName','nvarchar(max)') as Rolename,p.*
        from Process as p
        outer apply p.WorkflowXML.nodes('/workflow/Tasks/Task[@type="start"]/TaskUsers/TaskUser') as m(c)
        ) as Pro where Pro.Rolename in
        (SELECT * from RoleTable)

Thanks.

like image 571
Ali Soltani Avatar asked Feb 11 '26 23:02

Ali Soltani


1 Answers

You can join this table like:

select p.*
from Process as p
outer apply p.WorkflowXML.nodes('/Tasks/Task[@type="start"]/TaskUsers/TaskUser') as  m(c)
INNER JOIN RoleTable r 
    ON r.Rolename = m.c.value('@RoleName','varchar(max)') 
like image 120
gofr1 Avatar answered Feb 17 '26 01:02

gofr1



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!