2

SQLでワイルドカードはどのように機能しますか。私がそうするならselect * from table、それはすべてのフィールドを与えます。しかし、私がそうselect a* from tableすると、エラーが発生します。で始まるすべてのフィールドを指定する必要がありますか?私は少し混乱しています。

4

3 に答える 3

4

SELECT * FROM tableName文字通り、「tableNameからすべての列を選択する」という意味です。

フィリップ・グラハムは、彼が使用するように頼んだ彼の答えについて正しいですa.*

ワイルドカードは、不明な文字列を検索するのに役立ちます。これらはほとんどの場合、LIKEキーワードとともに使用され、WHERE句または検索されたCASEステートメントに入れられます。

2つのワイルドカード文字-%と。があり_ます。

%0以上の長さの文字列を検索するために使用されます。例えば、

SELECT firstName
  FROM persons
 WHERE UPPER(firstName) LIKE 'J%'

これにより、名が文字で始まるテーブルfirstNameからすべてが返されます。これにより、「Jason」、「James」、「Josh」、「Jessica」などが返されます。personsJ

UPPER大文字と小文字の区別をなくすために関数が使用されていることに注意してください。

_次に、 1つのキャラクターの存在を探すキャラクターを持つことができます。

SELECT firstName
  FROM persons
 WHERE UPPER(firstName) LIKE 'J_M__'

これにより、「James」、「Jimmy」、「Jamos」、「Jxmx」が返され、「Jason」、「Jaguar」などが除外されます。

詳細については、ここをクリックしてください

于 2013-02-24T11:46:43.543 に答える
3

a。*を使用できます。ここで、aはテーブルの名前です。たとえば

select a.* from a left join b on a.id = b.id 

aからのフィールドのみを返し、bからは返しません

于 2013-02-23T23:40:32.297 に答える
3

SQLでワイルドカードを使用する場合は、を使用してフィルタリングする列をキー入力する必要がありますLIKE

SELECT * 
FROM table
WHERE column_name LIKE 'a%';

これにより、その列の「a」で始まるすべてのものが得られます。

すべての列が必要ない場合は、クエリで必要な各列の名前を明示的に指定する必要があります。

SELECT LastName, FirstName, Address 
FROM table

したがって、「a」で始まるすべてのフィールドが必要な場合は、SELECTステートメントで「a」で始まるすべてのフィールドに名前を付ける必要があります。

お役に立てれば。

于 2013-02-23T23:42:57.490 に答える