2014-10-09 26 views
-4

我回來了,這是另一所學校的話題掌握LIKE不必要的行中SQL

我僅限於命令,其中來自SELECT

的主題基本上是表示從表客戶開始的名字與A或B,並以S或P結束,我已經試過多次或解決方案,但他們都不上班,答案是1列6行 我不能獲得此代碼工作

USE Northwind 
SELECT 
CompanyName 
FROM Customers 
WHERE CompanyName LIKE '[A/B]%' or CompanyName LIKE '%[S/P]' 
go 

用這段代碼,我得到31行:/

+0

對不起,MYSQL不應該在那裏 – 2014-10-09 00:13:22

+2

使用而不是OR。 – 2014-10-09 00:13:48

+0

我對'LIKE'表達式不是很熟悉,但不應該是'[AB]%',而不是'[A/B]%'? – 2014-10-09 00:15:13

回答

3

如何結合在一起的:

SELECT 
CompanyName 
FROM Customers 
WHERE CompanyName LIKE '[A/B]%[S/P]' 
+0

我通過更改或來解決它,但這似乎縮短了代碼,感謝 – 2014-10-09 00:17:49

+0

@MertDemirsü - 使用'和'會工作得很好,但這可能是最好的方法。 – sgeddes 2014-10-09 00:18:26

+1

是的,這是更短,更清晰,因此更好。根據@Matthew Haugen的評論,似乎你也不需要任何單獨的匹配字符。 – 2014-10-09 00:20:23

0

我相信這應該完成你想要的:

SELECT CompanyName 
FROM Customers 
WHERE 
    (LEFT(CompanyName,1) = "A" OR LEFT(CompanyName,1) = "B") 
    AND (RIGHT(CompanyName,1) = "S" OR RIGHT(CompanyName,1) = "P")