2014-08-28 37 views
1

我想從我的數據庫中選擇表格,他們以srt_factor_(在本例中只是前兩個)開頭。通配符查詢%提取錯誤的數據

我的表是:

srt_factor_20121119 
srt_factor_20130430 
srt_factorxyzk_20130813 

我的查詢錯誤地只返回,而不是前兩個表,最後一個,以及(srt_factorxyzk_20130813)

Select (TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' 
AND TABLE_NAME LIKE 'srt_factor_%'; 

任何想法如何解決呢?

回答

2

'_'是SQL Server中的通配符,表示一個字符。試試這個:

Select (TABLE_NAME) 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' AND 
     TABLE_NAME LIKE 'srt[_]factor[_]%'; 
3

的問題是在在SQL特殊含義下劃線(它就像*通配符,但對於確切的一個字符)。你要逃避他們是這樣的:

TABLE_NAME LIKE 'srt[_]factor[_]%' 

MSDN在使用通配符的文字。

2

嘗試轉義括號中的下劃線。

LIKE 'srt_factor[_]%'; 

下劃線用於匹配任何單個字符。