Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 标记类似于表名的查询的列名_Sql_Database_Netezza - Fatal编程技术网

Sql 标记类似于表名的查询的列名

Sql 标记类似于表名的查询的列名,sql,database,netezza,Sql,Database,Netezza,给定一个具有如下命名方案的表: 例1: INFO_APPLICATION_B CORRESPOND_U|OBJECTIVE_U|APPLICATION_U|DENIED_U|ACCEPTED_U| 例2: INFO_CITIZEN_B REFUGEE_U|INCOME_U|EDUCATION_U|CITIZEN_U| 我想过滤掉表中与表名类似的列名(如示例中所示)。确切地说,在第一个示例中,由于第3列与其各自的表名相似,因此最好标记第3列。在示例2中也有相同的想法,其中第4列将被标记 如

给定一个具有如下命名方案的表:

例1:

INFO_APPLICATION_B

CORRESPOND_U|OBJECTIVE_U|APPLICATION_U|DENIED_U|ACCEPTED_U|
例2:

INFO_CITIZEN_B

REFUGEE_U|INCOME_U|EDUCATION_U|CITIZEN_U|
我想过滤掉表中与表名类似的列名(如示例中所示)。确切地说,在第一个示例中,由于第3列与其各自的表名相似,因此最好标记第3列。在示例2中也有相同的想法,其中第4列将被标记

如何在
SQL
中执行此操作

我想要一个不显示名称与表名类似的列的输出:

对应|客观|否认|接受||


注意“APPLICATION_U”是如何不再存在的,因为它与表名“APPLICATION_B”相似。

通过
\U v_relationship_列
循环,并确定该列是否包含表中的文本

我猜你在其他方面的意思是“相似”,但我只是在以你为例

create or replace find_similar_columns(varchar(any))
    returns varchar
    language nzplsql
    begin_proc
        declare
            input_table alias for $1;
            included_columns varchar;
            delimiter varchar;
            column record;
            filtered_column varchar;
        begin
            delimiter := '|';
            included_columns := '';
            for column in 
                select 
                    attname 
                from 
                    _v_relation_column 
                where 
                    name = input_table order by attnum
                loop
                filtered_column := replace(column.attname, '\_U', '');
                if input_table not like '%' || filtered_column || '%' then
                    included_columns := included_columns || delimiter || column.attname;
                end if;
            end loop;
        end;
    end_proc;

请把标签贴好。是哪一个?MySQL或SQL Server?您能编辑您的问题并显示您想要的输出吗?