我发现自己处于一个不熟悉的数据库的位置,该数据库的每个表都有大量的列。我对要查找的数据有所了解,但我不知道该数据位于哪一列中,因此需要使用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功能,因为高级查询是性能杀手