你好,我在SQL Server很新,我的家庭工作有一个问题,这是我的工作,这是我在家庭工作的最后一个问题,出于某种原因,我在最后一个问题上挣扎着。联盟声明加入同一表中的两列
的问题是这样的:
使用UNION运算符来产生一个结果集由来自Orders表三列: 包含交运或不发货 的OrderID值ShipStatus计算列OrderID列 OrderDate OrderDate列 如果订单在ShipDate列中具有值,则ShipStatus列应包含SHIPPED值。否则,它应该包含NOT SHIPPED的值。 对由OrderDate设置的最终结果集进行排序。
这是我到目前为止,但它似乎并没有工作。
SELECT OrderID,OrderDate FROM Orders UNION SELECT ShipDate AS ShipStatus FROM Orders IF ShipDate IS NULL THEN ShipDate = 'Not Shipped' ELSE ShipDate = 'Shipped'
我不想确切的答案,因为我想弄明白,但在正确的方向轻推将不胜感激!
更新---------
嘿家伙感谢您的帮助! 与大家的帮助我想出了它。
这是最后工作的代码。联盟内
SELECT OrderID, OrderDate, 'SHIPPED' AS ShipStatus FROM Orders WHERE ShipDate IS NOT NULL UNION SELECT OrderID, OrderDate, 'NOT SHIPPED' AS ShipStatus FROM Orders WHERE ShipDate IS NULL;
嗯,我修改它看起来像这样。 'SELECT并按ShipDate AS ShipStatus,订单ID,订购日期 FROM订单 WHERE并按ShipDate IS NOT NULL = '发货' UNION SELECT并按ShipDate AS ShipStatus,订单ID,订购日期 FROM订单 WHERE并按ShipDate IS NULL = '不发货';' 我需要的是列OrderID,OrderDate,然后我需要另一列表示OrderStatus,如果值是NULL,那么它应该说NOT SHIPPED,如果该值不是NULL,那么它需要输出为SHIPPED。 我得到的NULL的方式或不空值如果从ShipDate列 – jfritts6524 2014-10-22 02:30:37
我终于明白了。 此代码最终输出了我正在寻找的结果。 '选择的OrderID,订购日期, '已装船' AS ShipStatus 从接单 WHERE UNION SELECT订单ID,订购日期, '不发货' AS ShipStatus 从接单 WHERE并按ShipDate IS NULL并按ShipDate IS NOT NULL;' – jfritts6524 2014-10-22 02:44:18