Actually I think I might have just figured this out. I've added a line of php on my detail page to turn the occasion column into an integer as follows:
?>
<?php if (strpos($row_rsItems['ItemOccasion'], "occasion")) {
$occasion=1;
} ?>
then used the 'based on a specific column value' parameter in the discount rule. Seems to work but let me know if there is a better solution.