当我运行语句以查看特定日期的行数时,我得到以下结果 - 3 行
然而,因为表 9 在 5 和 6 处有 2 个不同的数字,然后在 8 和 9 处,我真的需要像这样返回 4 行的结果
这是我使用的代码
SELECT BookingDate, Table, Five, Six, Seven, Eight, Nine, TenID
FROM **** WHERE BookingDate = '2013-09-24'
有任何想法吗?
当我运行语句以查看特定日期的行数时,我得到以下结果 - 3 行
然而,因为表 9 在 5 和 6 处有 2 个不同的数字,然后在 8 和 9 处,我真的需要像这样返回 4 行的结果
这是我使用的代码
SELECT BookingDate, Table, Five, Six, Seven, Eight, Nine, TenID
FROM **** WHERE BookingDate = '2013-09-24'
有任何想法吗?
Five
如果您想在or Six
isNULL
和Eight
or Nine
is not复制一行(即输入中只有一个这样的行)NULL
,应该这样做:
SELECT *
FROM
(
/* Select everything you want, one of each */
SELECT BookingDate, `Table`, Five, Six, Seven, Eight, Nine, TenID
FROM ...
WHERE BookingDate = '2013-09-24'
UNION ALL
/* Select all rows that should be duplicated */
SELECT BookingDate, `Table`, Five, Six, Seven, Eight, Nine, TenID
FROM ...
WHERE BookingDate = '2013-09-24'
AND (Five IS NOT NULL OR Six IS NOT NULL)
AND (Eight IS NOT NULL OR Nine IS NOT NULL)
) a
ORDER BY `Table` /* or whatever you want to order by */
Table
是一个保留字,这就是为什么它需要在`
's 中(在我个人看来,您最好不要使用保留字作为列/表名)。
如果这不是您想要的,我希望它足以得出您想要的。