簡體   English   中英

排除具有特定值'*'的記錄SQL SELECT

[英]Exclude records with specific value '*' SQL SELECT

我正在准備遷移到基於庫存的零售商店的新數據庫系統。 在當前已停用的數據庫產品中,記錄中添加了前導*。

業主不希望將停用產品帶入新系統,因此,這個領先的*是我唯一可以使用的參考點。

我需要創建一個SELECT查詢,該查詢將排除具有前導*的產品,但無濟於事。

我已經嘗試了以下

SELECT prdcod
FROM prdtbl
WHERE prodcod<>'*%';

返回的前10個結果是:

  1. 71A022
  2. 051116
  3. 070505PRO
  4. * 031620
  5. 458508
  6. 501315
  7. * 070247PE
  8. 370002
  9. 070278STU
  10. * CO20302

我懷疑我可能無法將*用作排除因素

任何想法都會被加深

嘗試這個

 SELECT prdcod
    FROM prdtbl
    WHERE prodcod not like '*%';

這可以用很多方法來完成。

使用NOT LIKE

SELECT prdcod
FROM prdtbl
WHERE prodcod NOT LIKE '*%'

使用LEFT/SUBSTRING

SELECT prdcod
FROM prdtbl
WHERE LEFT(prodcod,1) <> '*' -- SUBSTRING(prodcod from 1 for 1) <> '*'

注意:如果在prodcod列上有Index ,則“ Not Like是首選方法

SELECT prdcod
FROM prdtbl
WHERE prodcod NOT LIKE '*%';

而不是使用“ <>”運算符,而應使用“不喜歡”:

Select prdcod
From prdtbl
Where prodcod not like '*%';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM