You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在SQL Server数据库中设置多条件筛选以显示指定表?

如何在SQL Server中筛选名称同时包含K和L的表

嘿,我来帮你搞定这个问题!首先得说清楚:SSMS对象资源管理器里那个默认的筛选输入框,其实只能做单条件的模糊匹配,你直接输K、L的话,系统会以为你要找名字里包含"K、L"这个完整字符串的表,而不是同时有K和L的表,这就是为啥没结果啦。

下面给你两个靠谱的解决方案:

方案一:用T-SQL查询直接筛选(首推!)

这是最灵活也最靠谱的方式,直接查系统视图就能精准筛选:

SELECT 
    TABLE_SCHEMA, 
    TABLE_NAME
FROM 
    INFORMATION_SCHEMA.TABLES
WHERE 
    TABLE_TYPE = 'BASE TABLE' -- 只找用户创建的表,排除视图
    AND TABLE_NAME LIKE '%K%' 
    AND TABLE_NAME LIKE '%L%'; -- 同时包含K和L,不管顺序哦

要是你需要区分大小写(默认SQL Server是不区分的),可以加个排序规则:

SELECT 
    TABLE_SCHEMA, 
    TABLE_NAME
FROM 
    INFORMATION_SCHEMA.TABLES
WHERE 
    TABLE_TYPE = 'BASE TABLE'
    AND TABLE_NAME COLLATE SQL_Latin1_General_CP1_CS_AS LIKE '%K%'
    AND TABLE_NAME COLLATE SQL_Latin1_General_CP1_CS_AS LIKE '%L%';

方案二:试试SSMS筛选器的高级设置(看版本)

有些新版本的SSMS支持多条件筛选,步骤是这样的:

  • 右键对象管理器里的"Tables" → "Filter" → "Filter Settings"
  • 在弹出的窗口里点**"Add Condition"**,添加两个关于Name的条件:
    • 第一个:Name选"Contains",值填K
    • 第二个:Name选"Contains",值填L
  • 注意看条件之间的逻辑是AND(默认一般就是AND,确认下)
  • 点"OK"就能看到结果啦

不过要提一句,旧版本的SSMS可能不支持这个多条件AND的功能,这时候方案一就绝对好使。

额外说下:要是你需要K必须在L前面,那就把LIKE条件改成TABLE_NAME LIKE '%K%L%',这样就只会匹配K在L前面的表啦。

内容的提问来源于stack exchange,提问作者Riz

火山引擎 最新活动