I have a field in my database called “Notes”. It contains a comma delimited list of values.
I want to perform a SELECT Query that only returns the first value in the “Notes” field.
This query would also return additional fields from the database.
for example
x
SELECT Name, Phone, Notes (only the first value)
FROM Table1
Is this possible, and how do I do it?
Advertisement
Answer
You can use CHARINDEX
with SUBSTRING
:
SELECT Name, Phone, SUBSTRING(Notes, 1, CHARINDEX(',', Notes)) AS first_value
FROM Table1
Demo
DECLARE @csv varchar(50)
SET @csv = 'comma after this, and another,'
SELECT SUBSTRING(@csv, 1, CHARINDEX(',', @csv)) AS first_value
Result
| first_value | -------------------- | comma after this |
As mentioned in the comments, you should normalize your structure and not have more than one value stored in a single attribute.