Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Using Regexpression in Microsoft SQL not like

I am trying to perform a regex match in Microsoft SQL Server Management Studio 2022 v18.12.1 to query that looks as follows:
SELECT * FROM *table* WHERE [Item] LIKE '[H][0-9][0-9]%'

[H][0-9][0-9]% will match start with letter H only and [0-9] can matches any number from 0-9.I put twice mean will get two number after H, % will match Any string, because I want to get item like H03.1.

Here is my datatable:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

id Item
1 H23
2 H03.1
3 H030BZZ
4 H03YYZZ
5 H2261ZZ
6 H51Q1ZZ

I want to only match H[0-9][0-9] but not match any letter except letter H.
For example: I want to get H23 and H03.1 but not get H030BZZ, H03YYZZ, H2261ZZ, H51Q1ZZ.

I have tried the code like:

WHERE [Item]  NOT LIKE '[H][0-9]{0,3}[A-Z]{0,3}

but still can’t achieve my goal.Any suggestions would be helpful. Thank you.

>Solution :

You could use this query to check first if the Item starts with H[0-9][0-9] and then check that it doesn’t include a letter other than H after the first 3 characters:

SELECT * 
FROM table1 
WHERE [Item] LIKE '[H][0-9][0-9]%'
  AND [Item] NOT LIKE '___%[A-GI-Z]%'

Output (for your sample data):

id  Item
1   H23
2   H03.1

Demo on dbfiddle

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading