February 23, 2009 at 3:57 pm
I've come across a problem which doesn't seem to be documented anywhere else on any forums.
What I have in my database (SQL Server 2008) is a table which has, amongst other fields, two fields which for each record one of them has a date in it. For example, I may have this table:
DropOffDate | DeliverDate
-------------+-------------
01/03/2009 |
| 09/04/2009
| 03/03/2009
11/04/2009 |
What I would like to do is produce using some kind of LINQ expression which can merge these two fields like so:
MergedDate
----------
01/03/2009
09/04/2009
03/03/2009
11/04/2009
so I can then sort by this merged field.
I can then use it in a LINQ expression (VB) such as:
Dim matches = From order In DBDataContext.Orders _
Order By mergedField _
Select order
I expect there is quite an easy way to do this that I just can't figure out. Can anybody please help?
February 23, 2009 at 4:09 pm
Well, I am not proficient with LINQ, but in T-SQL, we would do it like this:
Select COALESCE(DropOffDate, DeliverDate) as MergedDate
From order
Order By MergedDate
Assuming that your blank date fields are NULL's.
[font="Times New Roman"]-- RBarryYoung[/font], [font="Times New Roman"] (302)375-0451[/font] blog: MovingSQL.com, Twitter: @RBarryYoung[font="Arial Black"]
Proactive Performance Solutions, Inc. [/font][font="Verdana"] "Performance is our middle name."[/font]
February 27, 2009 at 1:22 pm
Thanks for your reply, however I can't replicate the Coalesce function in LINQ, which is unfortunate as that would have been the perfect solution. Instead I opted to create a View that was almost an exact duplicate of the original table, with an additional formula-based column that used the Coalesce function in the formula to combine the two columns into one.
I hope this helps anyone who has the same problem as I did.
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy