两个查询使用EXCEPT(A EXCEPT B)求差集的结果:

SELECT expression1, expression2, ... expression_n
FROM table P
[WHERE conditions]
EXCEPT
SELECT expression1, expression2, ... expression_n
FROM table Q
[WHERE conditions];
范围 描述
expression1, expression2, expression_n 这些是我们想要在两个 SELECT 命令之间进行比较的列或计算。 并且它们不需要在每个 SELECT 命令中匹配字段,而等效列必须包含等效数据类型。
Tables 这些是我们想要从中获取记录的表。
WHERE conditions 这些是要对值进行排序必须遇到的条件。它是一个可选参数。
select yj_code
, yakka_code
, ingredient_code
,chemical_structure_ingredient_group_code
, dosage_form_code
, sales_drug_name
, sales_drug_name_kana
, sales_drug_name_eng
, brand_name_1
, brand_name_1_kana
, brand_name_1_eng
, brand_name_2
, brand_name_2_kana
, brand_name_2_eng
, generic_name
, generic_name_kana
, generic_name_eng
, standard_unit
, unit
, original_generic_type
, authorized_generic_flag
, biosimilar_flag
, poisoning_flag
, powerful_flag
, narcotic_flag
, psychotropic_type
, stimulant_ingredient_flag
, addictive_flag
, biological_product_type
, highrisk_flag
, sales_start_date
, identification_code
, remark_1
, remark_2
, ss_mix2_flag
,rece_flag
from (select * from drg.repos_drug_main n1
where n1.source_version = '20220630'
and exists (
select * from drg.repos_drug_main n2
where n2.source_version = '20220531'
and n1.yj_code = n2.yj_code
))a
except
select yj_code
, yakka_code
, ingredient_code
,chemical_structure_ingredient_group_code
, dosage_form_code
, sales_drug_name
, sales_drug_name_kana
, sales_drug_name_eng
, brand_name_1
, brand_name_1_kana
, brand_name_1_eng
, brand_name_2
, brand_name_2_kana
, brand_name_2_eng
, generic_name
, generic_name_kana
, generic_name_eng
, standard_unit
, unit
, original_generic_type
, authorized_generic_flag
, biosimilar_flag
, poisoning_flag
, powerful_flag
, narcotic_flag
, psychotropic_type
, stimulant_ingredient_flag
, addictive_flag
, biological_product_type
, highrisk_flag
, sales_start_date
, identification_code
, remark_1
, remark_2
, ss_mix2_flag
,rece_flag
from (
select * from drg.repos_drug_main n2
where n2.source_version = '20220531'
)b
strpos('my name is database', 'm')
返回:1
我的要求是返回指定索引后子串的位置:
strpos(string, substring, 5)
指定字符串在目标字符串的位置
例子:strpos('high', 'ig') = 2
三、在postgresql中好用的常见函数
项目中大部分都可以提到