当前位置: 首页 > 面试题库 >

是否像在所有列上一样应用而不指定所有列名称?

卢俭
2023-03-14
问题内容

我发现自己处于一个不熟悉的数据库中的位置,该数据库的每个表都有大量的列。我对要查找的数据有所了解,但我不知道该数据位于哪一列中并需要使用like它来定位所需的确切数据(并且必须针对多组数据重复执行此任务)

有没有办法像笛卡尔选择一样应用?

以下内容将说明我想做的更好的一点(即使在语法上很荒谬):

select 
    *
from    
    a_table
where   
    * like '%x%'

编辑

请注意,我无意在任何报告中使用直角坐标选择-此处的目的是帮助我确定需要放入查询中的相关列,并帮助我熟悉数据库。


问题答案:

通常-不可能以合理的方式来实现( 不挖掘数据库元数据 ),但是,如果您知道列的名称,则可以使用如下技巧:

select 
    YourTable.*
FROM YourTable
JOIN
( 
    select 
      id, 
      ISNULL(column1,'')+ISNULL(Column2,'')+...+ISNULL(ColumnN,'') concatenated
      FROM YourTable
) T ON T.Id = YourTable.Id
where   t.concatenated like '%x%'

或者

如果您搜索单词,请使用FTS功能,因为较高的查询是 性能的杀手



 类似资料:
  • 本文向大家介绍SQLServer获取临时表所有列名或是否存在指定列名的方法,包括了SQLServer获取临时表所有列名或是否存在指定列名的方法的使用技巧和注意事项,需要的朋友参考一下 获取临时表中所有列名 select name from tempdb.dbo.syscolumns where id=object_id( '#TempTB') 判断临时表中是否存在指定列名 以上就是本文的全部内容,

  • 问题内容: 我知道有列出所有用户组的文件。 我想知道是否存在一个简单的命令来列出所有用户组名称,尽管解析了世界可读文件。我愿意创建一个列出Linux帐户组名称的管理员网页。 问题答案: 要列出所有分配了用户的本地组,请使用以下命令: 有关更多信息-> Unix组, Cut命令, sort命令

  • 问题内容: 如何获得具有特定列名的所有表的列表? 问题答案: 在每个数据库级别上都非常简单

  • 问题内容: 我想在下表中使用“ distinct”,但仅在“ PlayerID”列上使用。这是我目前所拥有的: 这就是我想要的,以便显示每个“ PlayerID”的最高“ StartDate”,而忽略下一行: 当前的SQL: 这是一个Oracle数据库。 提前致谢。 问题答案: 几点… 除非您使用联接和过滤出行,否则不需要这些表。我把它们留在这里了;您可以根据需要将它们重新添加。 Mark Tic

  • 我试图找到一个命令,可以列出所有的ip(只有ip的),使用“ip”命令在ubuntu 20.04。 Ip a输出太多,所以我尝试使用ipv4的或只输出一部分,但没有成功。 有人知道如何使用命令简单列出系统的所有ip吗。除了使用ifconfig,我找不到任何东西,我不想安装ifconfig只是为了运行这个脚本。 谢谢你的帮助!

  • 我试图找到一个命令,可以列出所有IP(只有IP的)使用“ip”命令在Ubuntu20.04。 Ip a输出太多了,所以我尝试只输出一点,但使用或用于IPv4没有成功。 有人知道如何使用命令简单地列出系统的所有IP吗。除了使用ifconfig之外,我找不到任何东西,我不想仅仅为了运行这个脚本而安装ifconfig。 谢谢你的帮助!