RellB - Monday, February 20, 2017 12:52 PM
Check for the 0 returned by CHARINDEX when the search character(s) are not found. Convert the 0 to NULL with NULLIF, then to 8000 with ISNULL.WITH SomeSampleData AS (
SELECT *
FROM (VALUES
('TH1239.CDB.LOCAL'),
('TH1238.CDB.LOCAL'),
('TH1237.CDB.LOCAL'),
('TH1236.CDB.LOCAL'),
('TSB1-TLA.CDB.LOCAL'),
('TSB2-TLA.CDB.LOCAL'),
('TSB2-TLA')
) d (MachineName)
)
SELECT *, LEFT(MachineName,ISNULL(NULLIF(CHARINDEX('.', MachineName),0),8000)-1)
FROM SomeSampleData
For better assistance in answering your questions, please read this[/url].
Hidden RBAR: Triangular Joins[/url] / The "Numbers" or "Tally" Table: What it is and how it replaces a loop[/url] Jeff Moden[/url]