Jag förmodar att menutitle och menunumber har olika datatyp.
select ...
case when (select menuSorting
from menu
Where menuID = 5) = 0 then menuNumber end as mn,
case when (select menuSorting
from menu
Where menuID = 5) = 1 then menuTitle end as mt
from t
order by mn,mt
Han ändra lite i min kod innan du svarade.
Nu ser min kod ut på följande sätt men jag går odefinerat fel.
sqlString = "SELECT m.menuID, m.menuTitle, m.menuSorting, m.menuPublishStart, m.menuPublishEnd, m.menuShow " &_
"FROM menu as m " &_
"WHERE m.menuParentID = "& ID &" "&_
"AND menuShow = 1 "&_
"AND ((menuTimePublish = 1 " &_
"AND m.menuPublishStart <= #"& now() &"# " &_
"AND m.menuPublishEnd >= #"& now() &"# )" &_
"Or menuTimepublish = 0) " &_
"Case When (Select menuSortType from menu Where menuID = "& ID &") = 0 Then m.menuNumber End As mn, " &_
"Case When (Select menuSortType from menu Where menuID = "& ID &") = 1 Then m.menuTitle End As mt " &_
"from t " &_
"order by mn,mt"
Case fungerar inte i Access och jag är ytterst tveksam till att den stöder subselect i order by
select ...
iif((select menuSorting
from menu
Where menuID = 5)=0,menuNumber,null),
iif((select menuSorting
from menu
Where menuID = 5) = 1,menuTitle,null)
from t
order by 9,10
där 9 och 10 motsvarar de ordningsnummer som varje iif-uttryck har inom select-listan.