我正在尝试从我的数据库中选择以 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_%';
任何想法如何解决?
答案 0 :(得分:3)
问题在于下划线,它在SQL中具有特殊含义(它与*
通配符类似,但对于确切的一个字符)。你必须像这样逃避他们:
TABLE_NAME LIKE 'srt[_]factor[_]%'
有关使用通配符作为文字的信息,请参阅MSDN。
答案 1 :(得分:2)
'_'
是SQL Server中的通配符,表示一个字符。试试这个:
Select (TABLE_NAME)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND
TABLE_NAME LIKE 'srt[_]factor[_]%';
答案 2 :(得分:2)
尝试在括号中转义下划线。
LIKE 'srt_factor[_]%';
下划线用于匹配任何单个字符。