问题
My database doesn't have a specific column so I created a column in my query by switch. What I need is to concatenate this column with another column in the database:
select
certificateDuration ,
'DurationType' = case
when certificateDurationType = 0 then 'Day'
when certificateDurationType = 1 then 'Month'
when certificateDurationType = 2 then 'Year'
end
from
Scientific_Certification
回答1:
To concatenate strings in SQL Server you can simply use the + operator.
Note that if one of the substrings is null then the entire concatenated string will become null as well. therefor, use COALESCE if you need a result even if one substring is null.
select certificateDuration,
' DurationType = '+
COALESCE(case
when certificateDurationType = 0 then 'Day'
when certificateDurationType = 1 then 'Month'
when certificateDurationType = 2 then 'Year'
end, '') As DurationType
from Scientific_Certification
Note: I've used coalesce on your case clause since you have no default behavior (specified by else
). this means that if certificateDurationType
is not 0, 1 or 2 the case statement will return null
.
回答2:
You just need to try +
operator or CONCAT
function
+
for all SQL Server versionsDurationType = ' + 'some text'
CONCAT
for SQL Server 2012 +CONCAT('DurationType = ', 'some text')
Your query should be something like this
SELECT certificateDuration
,'DurationType = ' +
CASE certificateDurationType
WHEN 0 THEN 'Day'
WHEN 1 THEN 'Month'
WHEN 2 THEN 'Year'
END
FROM Scientific_Certification
来源:https://stackoverflow.com/questions/30011871/how-to-concatenate-in-sql-server