抱歉,我的问题标题令人困惑,因为我不知道如何用一个句子来概括我的问题。
基本上,我得到了一个包含不同公司信息的表。大多数用户不知道主键,因此用户将无法进行查询以搜索指定的公司。他们中的大多数人只知道他们的企业邮政编码和公司名称。
create table business
(post_code varchar2(8) not null,
company_name varchar2(50) not null,
code_name varchar2(58),
compNo varchar(10) constraint pk_business_compNo primary key,
address varchar2(100) not null);
这是一个表格,用于保存有关公司的信息。
post_code
是公司的邮政编码
company_name
是公司名称
code_name
是表的主键,也是post_code
和company_name
的串联。
address
是公司地址
compNo
是主键,它是按以下顺序生成的:
CREATE SEQUENCE primaryKey_sequence
INCREMENT BY 1
START WITH 1
MAXVALUE 9999
NOCYCLE;
然后,我创建了一个触发器来完成串联并从序列中获取主键。
CREATE OR REPLACE TRIGGER tr_uppercas
BEFORE INSERT ON business
FOR EACH ROW
BEGIN
IF:NEW.code_name IS NULL THEN
SELECT replace(upper(:new.post_code),' ' ,'')||replace(upper(:new.company_name),' ','')
INTO :NEW.code_name FROM DUAL;
END IF;
IF:NEW.compNo IS NULL THEN
SELECT primarykey_sequence.NEXTVAL
INTO :NEW.compNo FROM DUAL;
END IF;
END;
/
insert all
INTO business VALUES ('n1 9sV', 'HELLO WoRLD ltd', null, null, 'buckingham palace' )
SELECT * FROM DUAL;
因此,如果我插入此数据,则code_name
的值为N19SVHELLOWORLDLTD
我的问题:由于大多数用户只能提供以下两个特定信息:post_code
和company_name
,我想知道是否可以通过SQL查询来搜索公司通过提示用户输入company_name
和post_code
的值,然后将这些值连接起来,然后将这些值变为大写。在这种情况下,应该保证找到code_name
的价值和我们期望的公司。
感谢您的帮助!