-- Database by Doug -- Douglas Kline -- 8/28/2018 -- Character Expressions - expressions that return character data -- beginner level -- might want to check out numeric expressions ------------------------------------------------------------------ -- consider this statement SELECT 'Fred', 'Flintstone' -- note that the single quotes are not shown in -- the table results -- this is because that are not *part of* the data -- they are used to mark the beginning and end of the data -- and are called *delimiters* -- so the statement has two pieces of data -- delimited by single quotes SELECT 'Fred', 'Flintstone' -- the *type* of data is *character* data -- more specifically, a *sequence of characters* -- in programming, they would be called *strings* -- another term might be *string literals* -- now look at this: SELECT 123 AS [numeric data type], '123' AS [character data type] -- the first column is a number -- the second column is a sequence of characters -- first the character '1', then the character '2', ... -- now consider this SELECT 1 + 5 AS [numeric], '1' + '5' AS [character] -- see how the plus sign means something different -- depending on what's on either side? -- with character data, the plus sign means *concatenate* -- or 'put together' -- so the basic operator for character expressions -- is the plus sign -- we can prove this: SELECT SQL_VARIANT_PROPERTY(1 + 5, 'BaseType'), SQL_VARIANT_PROPERTY('1' + '5', 'BaseType') -- here'a another example: SELECT 'Fred' + ' ' + 'Flintstone' AS [Full Name] ------------------------------------------------------------- -- there's lots more we want to do with -- character data -- but we need functions.... -- here are a few simple ones: SELECT LEN (' Fred'), -- find how many chars - note the spaces UPPER(' Fred'), -- convert all chars to upper case LOWER(' Fred'), -- convert all chars to lower case LEFT (' Fred', 2), -- return just the left-most 2 chars RIGHT(' Fred', 2), -- return just the right-most 2 chars LTRIM(' Fred') -- get rid of any space chars on left -- you might also want to find the location of a certain character SELECT CHARINDEX(' ', 'Fred Flintstone') AS [location of space character] -- and also, you can combine these functions into a more complex expression SELECT 'Fred Flintstone' AS [original full name], RIGHT('Fred Flintstone', -- right-most 10 characters LEN('Fred Flintstone') -- the number 15 - CHARINDEX(' ', 'Fred Flintstone') -- the number 5 ) AS [last name only] --------------------------------------------------------------------------------- -- what about data from a table - not literals SELECT ProductName, LEN(ProductName) AS [length of name], UPPER(ProductName) AS [uppercase], CHARINDEX(' ', ProductName), RIGHT(ProductName, LEN(ProductName) - CHARINDEX(' ', ProductName)) FROM Products --------------------------------------------------------------------------------- -- in summary -- string literals are delimited by single quotes -- plus sign means concatenate -- functions help with other tasks -- Database by Doug -- Douglas Kline -- 8/28/2018 -- Character Expressions
Thursday, October 4, 2018
String Expressions in SQL
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment