sql server - SQL Query using Partition By -
i have following table name jobtitle
jobid lanaguageid ----------------- 1 1 1 2 1 3 2 1 2 2 3 4 4 5 5 2
i selecting records table except duplicate jobid's count > 1. selecting 1 record/first row duplicate jobid's. passing languageid paramter stored procedure , want select duplicate jobid languageid along other records also. if have passed languageid 1 output should come follows
jobid lanaguageid ----------------- 1 1 2 1 3 4 4 5 5 2
i have tried using following query.
with cte_rn ( select row_number() over(partition jobtitle.jobid order jobtitle.jobtitle) rn jobtitle inner join jobtitle_lang on jobtitle.jobtitleid = jobtitle_lang.jobtitleid )
but unable use clause in above query. different approch should followed. or else how can modify query desired output
with cte_rn ( select jobid, lanaguageid, row_number() over(partition jobtitle.jobid order jobtitle.jobtitle) rn jobtitle inner join jobtitle_lang on jobtitle.jobtitleid = jobtitle_lang.jobtitleid ) select cte_rn rn = 1 or languageid = @languageid
update
simplified bit (join removed), you'll idea:
declare @languageid int = 2 ;with cte_rn ( select jobid, languageid, row_number() over( partition jobtitle.jobid order case when languageid = @languageid 0 else 1 end, languageid ) rn jobtitle ) select * cte_rn rn = 1
Comments
Post a Comment