Good day!

I want to cut my record. Can you please tell us how compactly you can write a sample from table1 where the code field corresponds to the mask [something] .1. [Zero or one digit] 66 | 67 | 68 | 71 | 72 | 180 | 181 | 182 | 185 | 186 | 187 | 301

select * from table1 where code similar to '%\.1\._?66' or code similar to '%\.1\._?67' or code similar to '%\.1\._?68' or code similar to '%\.1\._?71' or code similar to '%\.1\._?72' or code similar to '%\.1\._?180' or code similar to '%\.1\._?181' or code similar to '%\.1\._?182' or code similar to '%\.1\._?185' or code similar to '%\.1\._?186' or code similar to '%\.1\._?187' or code similar to '%\.1\._?301' 

Result:

 1.1.066 1.1.067 1.1.067 1.1.068 1.1.071 1.1.071 1.1.072 1.1.072 1.1.166 1.1.166 1.1.167 1.1.168 1.1.168 1.1.171 1.1.172 1.1.172 1.1.180 1.1.180 1.1.181 1.1.182 1.1.182 1.1.185 1.1.186 1.1.187 1.1.187 1.1.266 1.1.267 1.1.268 1.1.271 1.1.272 1.1.301 2.1.066 2.1.067 2.1.068 2.1.068 2.1.071 2.1.072 2.1.072 2.1.166 2.1.166 2.1.167 2.1.167 2.1.168 2.1.168 2.1.171 2.1.171 2.1.172 2.1.172 2.1.180 2.1.180 2.1.181 2.1.182 2.1.182 2.1.185 2.1.186 2.1.187 2.1.187 2.1.271 2.1.272 2.1.301 

Thank you in advance!

    1 answer 1

     select * from table1 where code ~ '.*\.1\.\d?(6[678]|7[12]|18[012567]|301)' 

    Test at regex101.com

    • Thanks a lot, @Mike! - Elena
    • PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4), 64-bitElena
    • with similar to did not give a single result, replaced with ~, gave everything you need! - Elena