Ya vas bien encaminado con la primera opción. Lo que pasa es que $rows['subcategoria'] no tiene valor o su valor es cadena vacía. Lo que debes hacer es poner valores a la variable que propagas por URL, 'subcategoria', y luego en el script que recibe accedes a ella con $_GET['subcategoria'] lo cual te sirve para montar el switch.
Por ejemplo:
Código HTML:
<a href="subcategoriaampliar.php?subcategoria=comprayventa">Compra y venta</a>
<a href="subcategoriaampliar.php?subcategoria=alquilerespedidos">Alquileres pedidos</a>
<a href="subcategoriaampliar.php?subcategoria=alquileresofrecidos">Alquileres ofrecidos
</a>
Y en el script receptor:
Código PHP:
switch($_GET["subcategoria"])
{
case 'comprayventa':
$tabla='comprayventabb';
break;
case 'alquilerespedidos';
$tabla='alquilerespedidosbb';
break;
case 'alquileresofrecidos';
$tabla='alquileresofrecidosbb';
break;
}