Guest User

Untitled

a guest
Aug 17th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. Order by case in dbCommand.CommandText
  2. Protected Sub AddData()
  3. Dim cn As OleDbConnection = New OleDbConnection(ConfigurationManager.AppSettings("ConnectionString"))
  4. cn.Open()
  5. Dim dbCommand As New OleDbCommand
  6. dbCommand.Connection = cn
  7.  
  8. dbCommand.CommandText = "SELECT * from tblPosts ORDER BY CASE PriorityLevel WHEN 'Red' then 1 when 'Orange' then 2 ELSE 3 END"
  9.  
  10. Try
  11. dbCommand.ExecuteNonQuery()
  12. Dim objdatareader As OleDbDataReader = dbCommand.ExecuteReader()
  13. While objdatareader.Read()
  14. Dim PostID As Integer = CInt(objdatareader("ID"))
  15. PopulateImages(PostID, cn)
  16. PopulateCategories(PostID, cn)
  17. rssFeed.AddItem(objdatareader, ImageList, CategoryList)
  18. ImageList.Clear()
  19. CategoryList.Clear()
  20. End While
  21.  
  22. objdatareader.Close()
  23. Catch myerror As OleDbException
  24. Dim strErr As String = "There was an error updating the database: " & myerror.Message
  25. End
  26.  
  27. declare @tblPosts table(
  28. PriorityLevel varchar(10)
  29. )
  30.  
  31. insert into @tblPosts
  32. values('Orange'),('Red'),('Green'),('Orange')
  33.  
  34. SELECT * from @tblPosts ORDER BY
  35. CASE PriorityLevel WHEN 'Red' then 1
  36. when 'Orange' then 2
  37. ELSE 3 END
  38.  
  39. declare @tblPosts table(
  40. PriorityLevel varchar(10)
  41. )
  42.  
  43. insert into @tblPosts
  44. values('Orange'),('Red'),('Green'),('Orange')
  45.  
  46. SELECT * from @tblPosts ORDER BY CASE
  47. PriorityLevel WHEN 'Red' then 1
  48. when 'Orange' then 2
  49. ELSE 3 END PriorityLevel
  50.  
  51. SELECT tblPosts.*
  52. FROM tblPosts
  53. ORDER BY IIf(PriorityLevel='Red',1,IIf(PriorityLevel='Orange',2,3));
  54.  
  55. SELECT DISTINCT
  56. tblPosts.PriorityLevel,
  57. IIf(PriorityLevel='Red',1,IIf(PriorityLevel='Orange',2,3)) AS order_by
  58. INTO PriorityLevelOrder
  59. FROM tblPosts;
  60.  
  61. SELECT tblPosts.*
  62. FROM
  63. tblPosts INNER JOIN PriorityLevelOrder
  64. ON tblPosts.PriorityLevel = PriorityLevelOrder.PriorityLevel
  65. ORDER BY PriorityLevelOrder.order_by;
Add Comment
Please, Sign In to add comment