0

私は MySQL の初心者であり、インディアナ州、オハイオ州、ミシガン州、イリノイ州に住んでいて、名前が文字 A で始まる顧客の顧客 ID と顧客名 (アルファベット順) を返す SELECT ステートメントを書きたいと考えていました。またはB。

これは、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
4

3 に答える 3

1
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-09T11:57:25.993 に答える
0

あなたCUST_STATECHAR(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-09T11:58:18.600 に答える
0

クエリにいくつか問題があります。

  • 正しいかどうかを問うだけでなく、まず試してみる必要があります。
  • ステートメントで条件をネストするとき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_NAME
于 2012-04-09T11:58:42.437 に答える