簡體   English   中英

SQL從表中排除LIKE項

[英]SQL Exclude LIKE items from table

我正試圖弄清楚如何使用表B中的排除列表從表A中的select語句中排除項目。問題是我根據字段的前綴排除。

所以一個字段值可能是“FORD Muffler”並將其排除在基本查詢之外:

SELECT FieldName 
FROM TableName 
WHERE UPPER(ColumnName) NOT LIKE 'FORD%'

但是要使用值列表從不同的表格中排除我會使用子查詢,如:

SELECT FieldName 
FROM TableName 
WHERE UPPER(ColumnName) NOT IN (Select FieldName2 FROM TableName2)

問題是它只排除完全匹配而不是LIKE或通配符(%)。

我怎樣才能完成這項任務? 重新設計表不是一個選項,因為它是一個正在使用的現有表。

編輯:對不起,我正在使用SQL Server(2005)。

我想這會做到:

SELECT FieldName
FROM TableName
LEFT JOIN TableName2 ON UPPER(ColumnName) LIKE TableName2.FieldName2 + '%'
WHERE TableName2.FieldName2 IS NULL

Dunno這將是多么有效,但它應該工作:

SELECT FieldName 
FROM TableName t1
WHERE NOT EXISTS (
    SELECT *
    FROM TableName2 t2
    WHERE t1.FieldName LIKE t2.FieldName2 + '%'
)
SELECT * FROM table_A 
LEFT OUTER JOIN table_B 
    ON (locate(table_b.column, UPPER(table_a.column)) == 1)
WHERE table_b.column IS NULL

暫無
暫無

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

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