我正在嘗試撰寫一個查詢,該查詢回傳不以字母“A”開頭或結尾的客戶名稱串列(大寫或小寫)。以下是我的查詢,
SELECT * FROM Customers
WHERE
CustomerName IN (SELECT * FROM Customers WHERE CustomerName NOT LIKE 'A%')
AND
CustomerName IN (SELECT * FROM Customers WHERE CustomerName NOT LIKE '%a')
在查詢結果中,我收到“錯誤代碼:1241。運算元應包含 1 列”。客戶表的列是
`customers` (
`CustomerID` int(11) NOT NULL,
`CustomerName` varchar(255) DEFAULT NULL,
`ContactName` varchar(255) DEFAULT NULL,
`Address` varchar(255) DEFAULT NULL,
`City` varchar(255) DEFAULT NULL,
`PostalCode` varchar(255) DEFAULT NULL,
`Country` varchar(255) DEFAULT NULL
有人可以更正我的查詢嗎?
uj5u.com熱心網友回復:
使用子查詢添加就像添加額外的計算,這將使用更多的資源。
這可以使用一個簡單的 where 子句來實作,如下所示:
select
*
from
Customers
where
upper(CustomerName) not like 'A%'
and upper(CustomerName) not like '%A'
uj5u.com熱心網友回復:
SELECT CustomerName FROM Customers
WHERE
CustomerName NOT LIKE 'A%'
AND
CustomerName NOT LIKE '%a'
你不需要子查詢。
如果你想使用子查詢,你的代碼應該如下所示,
SELECT * FROM Customers
WHERE
CustomerName IN (SELECT CustomerName FROM Customers WHERE CustomerName NOT LIKE 'A%')
AND
CustomerName IN (SELECT CustomerName FROM Customers WHERE CustomerName NOT LIKE '%a')
“但在這里你不需要那個。
“所以你應該在 SELECT 之后在子查詢中定義你想要的東西。
uj5u.com熱心網友回復:
請嘗試這種方式,它也會區分大小寫。
SELECT * FROM customers WHERE CustomerName NOT LIKE 'A%' AND CustomerName NOT LIKE '%A'
您不需要為此執行子查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/530827.html
