?
Solved

sql help

Posted on 2016-09-20
5
Medium Priority
?
59 Views
Last Modified: 2016-09-23
I am trying to update the table. where I have following columns:
folioNo,pgPos,PgName,

folioNo is the order
pgPos is either right or left (if folioNo is odd then put L (left) if even put R(right)) . Let say I want to add another FolioNo in beteween 11 and 12. I will need to make new itemWith a folio 12 and PgPos R. and the following reordered accordingly with update in folioNo and PgPos
sample data
PDF_Filename	FolioNo	PgPos	
A-1	                             11	 	R	
A-2	                            12      	      L	
A-3	                              13      	R		
A-4	                            14	         L	
A-5	                            15	      R	
A-6	                            16	       L	

Open in new window


With cte As
(
SELECT folioNo,pgPos,
ROW_NUMBER() OVER (ORDER BY folioNo ) AS RN
FROM  tbl_160154dd
)

SELECT * FROM cte

Open in new window

0
Comment
Question by:erikTsomik
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 29

Expert Comment

by:Pawan Kumar
ID: 41807864
@Author - Do you need an update query or Select Query?
0
 
LVL 29

Accepted Solution

by:
Pawan Kumar earned 2000 total points
ID: 41807867
Bro try this..

--


;With cte As
(
	SELECT folioNo,pgPos,
	ROW_NUMBER() OVER (ORDER BY folioNo ) AS RN
	FROM  tbl_160154dd
)
UPDATE x
SET x.pgPos = CASE WHEN RN % 2 = 0 THEN 'R' ELSE 'L' END 
FROM cte x


--

Open in new window


--
0
 
LVL 66

Expert Comment

by:Jim Horn
ID: 41807885
It would help if you can give us a data mockup of your desired return set, as it's not clear from the description.  Thanks.
0
 
LVL 19

Author Comment

by:erikTsomik
ID: 41807897
I would expect something like this

PDF_Filename	FolioNo	PgPos	
A-1	                             11	 	R	
A-5                               12              L     I added this record
A-2	                             13      	       R	
A-3	                             14      	       L		
A-4	                             15	       R	
A-5	                             16	       L	
A-6	                             17	       R	

Open in new window

0
 
LVL 49

Expert Comment

by:PortletPaul
ID: 41807997
Consider using a "computed column" instead

With this approach as soon as you insert a new row it will calculate the L or R value for you without needing an update.

ALTER TABLE tbl_160154dd
ADD [ComputedColumn] AS CASE WHEN RN % 2 = 0 THEN 'R' ELSE 'L' END

If you want to continue using [pgPos] as the column name you would need to drop that column first, then add it with the calculation

Note: It is possible to "persist" (store) the calculation, refer to the URL above for more details on this.
0

Featured Post

Veeam Task Manager for Hyper-V

Task Manager for Hyper-V provides critical information that allows you to monitor Hyper-V performance by displaying real-time views of CPU and memory at the individual VM-level, so you can quickly identify which VMs are using host resources.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Why is this different from all of the other step by step guides?  Because I make a living as a DBA and not as a writer and I lived through this experience. Defining the name: When I talk to people they say different names on this subject stuff l…
A Stored Procedure in Microsoft SQL Server is a powerful feature that it can be used to execute the Data Manipulation Language (DML) or Data Definition Language (DDL). Depending on business requirements, a single Stored Procedure can return differe…
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question