我有一個零售場景的小型數據庫,在這裏我有一個名爲「Dispatched」的字段,它是一個布爾值,用於指示該物品是否已分派。這當然是爲1和0的,我已經嘗試一個簡單的例子時做出1所顯示的是0號作爲SQL CASE WHEN問題,查詢根本沒有運行
我的全查詢:
SELECT
orders.OrdersID,
stock.ItemName,
basket.Quantity,
customer.FirstName,
customer.LastName,
address.AddressLine1,
address.AddressLine2,
address.TownOrCity,
address.Postcode,
address.Country,
CASE WHEN basket.Dispatched = 1 THEN 'Yes' ELSE 'No' END AS basket.Dispatched
FROM orders
JOIN OrdersBasketJoin ON orders.OrdersID = OrdersBasketJoin.OrdersID
LEFT JOIN basket ON OrdersBasketJoin.BasketID = basket.BasketID
JOIN customer ON orders.CustomerID = customer.CustomerID
JOIN address ON orders.DeliveryAddress = address.AddressID
JOIN stock ON basket.StockID = stock.StockID
ORDER BY `customer`.`CustomerID` ASC
LIMIT 0 , 30
的查詢工作正常無CASE WHEN,並且將在正常選擇Dispatched時顯示1和0,以及在引用Dispatched時正常工作。
然而,當我嘗試添加
CASE WHEN basket.Dispatched = 1 THEN 'Yes' ELSE 'No' END AS basket.Dispatched
我得到的錯誤
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.Dispatched FROM orders JOIN OrdersBasketJoin ON orders.OrdersID = Ord' at line 12
從我研究過,這是非常簡單的情況時,你可以做,而且語法我相信是正確的。
不確定它是否只是一個視覺錯誤,但CASE中的「END」不會像已知的函數一樣點亮,而JOIN,ON,LEFT等全部點亮,無論END在哪裏「T。
任何及所有的幫助深表感謝-Tom
我最初有一個逗號,並且出現錯誤:#1064 - 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在FROM之前的'.Dispatched FROM orders JOIN OrdersBasketJoin ON orders.OrdersID = Ord'12行 – Vereonix
處使用正確的語法,您不需要逗號,需要用逗號分隔選擇列表中的列所以'as basket.Dispatched'是另一個新的列,所以你需要逗號前,然後使用從 –
@Tom再次看到我的答案我已經使用反引號'也圍繞basket.Dispatched –