2

正しく形式化できなくなる前にこの質問があった場合は、お詫び申し上げます。テーブルにコード列があり、それをクエリしたいのですが、特定のコードでいくつかの要素を削除します。4から始まるコードの要素を取得したいが、6番目の数値が9(1121290)のコードの要素を含めないとします。

コード列には、最大長が8文字の数字の文字列が含まれています。411、427、428で始まる要素を除いて、4で始まるほとんどすべてのものを取得したいと思います。

4

4 に答える 4

1

はい、次のようなクエリを実行できます:-

6桁のコードを持つ列要素があります。

1桁目が4または6桁目が9の要素をフェッチしています。

%_フェッチに使用する必要があります。

SELECT element  FROM "table" WHERE element LIKE '%4____9%';

これを試してみてください。

411、427、および428で始まる要素を除く4で始まるすべて:-

 SELECT element  FROM "table" WHERE element LIKE '%4__';

1桁目は4で、6桁目は9ではありません:これをテストしました。正常に動作しています。これを試してください:-

SELECT element  
FROM "table" 
WHERE element NOT LIKE '%_____9' and element LIKE '%4_____'
于 2012-05-16T05:20:58.923 に答える
1

where句で各条件を簡単に説明するのが最も簡単な場合があります。

WHERE code like '4____9%' AND code NOT LIKE '411%' AND code NOT LIKE '427%' AND code NOT LIKE '428%'

追加の条件は、クエリの効率をそれほど損なうことはありません。とにかく、 4から始まるすべての行をスキャンする必要があります。

于 2012-05-16T05:27:26.123 に答える
0

「CODE」フィールドがvarcharであり、SQL Serverを使用していると仮定すると、以下のクエリを使用できます。

select * from yourTable
where code like '4%'
AND CHARINDEX('9',code)<>6
于 2012-05-16T05:18:01.173 に答える
0

これがよりコンパクトなバージョンです。

`SELECT * FROM table_name WHERE code IN ('4%') and code NOT IN ('411%','427%', '428%','_____9%');`
于 2012-05-16T06:20:28.667 に答える