我只是MySQL的初学者,我想编写一条SELECT语句,为居住在印第安纳州、俄亥俄州、密歇根州和伊利诺伊州、姓名以字母A或B开头的客户返回客户in和客户名称(按字母顺序)。
下面是使用DESCRIBE CUSTOMER_TBL的CUSTOMER_TBL结构;
Name Null? Type
-------------------------------------------------------------
CUST_ID NOT NULL VARCHAR2(10)
CUST_NAME NOT NULL VARCHAR2(30)
CUST_ADDRESS NOT NULL VARCHAR2(20)
CUST_CITY NOT NULL VARCHAR2(12)
CUST_STATE NOT NULL CHAR(2)
CUST_ZIP NOT NULL CHAR2(5)
CUST_PHONE NUMBER(10)
CUST_FAX NUMBER(10)这是我的解决方案。我只需要知道我是否正确。谢谢
SELECT CUST_ID,CUST_NAME FROM CUSTOMER_TBL
WHERE IN('Indiana','Ohio','Ohio','Michigan','Illinois') AND WHERE LIKE(A% OR B%)
ORDER BY CUST_ID,CUST_NAME发布于 2012-04-09 19:58:19
您的CUST_STATE是一个CHAR(2)列,因此我假定它包含州代码,而不是州名称。因此,您应该使用州代码,而不是印第安纳州、俄亥俄州等:
SELECT CUST_ID, CUST_NAME
FROM CUSTOMER_TBL
WHERE CUST_STATE IN ('IN','OH','MI','IL') AND (
CUST_NAME LIKE 'A%' OR
CUST_NAME LIKE 'B%'
)
ORDER BY CUST_NAME更正状态代码,以防它们出错。
发布于 2012-04-09 19:57:26
SELECT CUST_ID,CUST_NAME FROM CUSTOMER_TBL
WHERE CUST_STATE IN('Indiana','Ohio','Ohio','Michigan','Illinois') AND (CUST_NAME LIKE 'A%' OR CUST_NAME LIKE 'B%')
ORDER BY CUST_ID,CUST_NAME发布于 2012-04-09 19:58:42
您的查询中有几个地方是错误的:
WHERE语句中嵌套条件时,不要重复where语句。因此,您的查询应该如下所示:
SELECT CUST_ID, CUST_NAME
FROM CUSTOMER_TBL
WHERE CUSTOMER_City IN('Indiana','Ohio','Ohio','Michigan','Illinois')
AND ( CUST_NAME LIKE 'A%' OR CUST_NAME LIKE 'B%' )
ORDER BY CUST_ID,CUST_NAMEhttps://stackoverflow.com/questions/10072796
复制相似问题