2017-05-16 13 views
0

現在、SQL Serverでレポートを作成しています。私は3つの列を持っているとしましょう。他の2つの列の値を持つURLを既に持つ列を移入するにはどうすればよいですか?

FirstName | LastName | URL's 
----------+----------+------------------------------------------------ 
Tiffany | Smith | www.example.com/accountname=%3Dtiffany%7Lsmith  

URLの形式は、常に次のようになります。

www.example.com/accountname=%3Dname%7Lname 

は、どのように私は上記の例のようにFirstNameLastNameからの値でURL欄を埋めるでしょうか?

+1

使用しているデータベースとのあなたの質問にタグを付けます。また、サンプルデータと表示したい結果を提供してください。 –

答えて

0

連結名の使用:

create table #temp 
(
firstname varchar(50), 
lastname varchar(50) 
) 

insert into #temp (firstname, lastname) values 
('tiffany', 'smith'), 
('john', 'doe') 

select 
firstname 
, lastname 
, concat('www.example.com/accountname=%3D', firstname, '%7L', lastname) as 'url' 
from #temp 
0

あなたはこの

declare @firstname varchar(10) = 'hello' 

declare @lastname varchar(10) = 'there' 

select 'www.example.com/accountname=%3D'[email protected]+'%7L'[email protected] as url 

のようなものに復帰されたURLを行うことができ、この

www.example.com/accountname=%3Dhello%7Lthere

は、単にあなたの持つ変数を置き換えています列名

+0

URL列が存在しないと仮定しているので、上記のように派生させることができます。それが存在していても、あなたはそれを無視して、このようにレポートの列を導き出すことができます。 – Harry

0
;With cte(FirstName , LastName , [URL's]) 
AS 
(
SELECT 'Tiffany', 'Smith', 'www.example.com/accountname=%3D%7L' Union all 
SELECT 'john', 'doe',Null 
) 
SELECT FirstName 
    ,LastName 
    ,ISNULL(STUFF(STUFF([URL's], CHARINDEX('%3D', [URL's]) + 3, 0, FirstName), 
      CHARINDEX('%7L', STUFF([URL's], CHARINDEX('%3D', [URL's]) + 3, 0, FirstName)), 
       LEN(LastName), '%7L' + LastName), 'NA') AS [URL's] 
FROM cte 

アウトプット

FirstName LastName [URL's] 
--------------------------------------------------------------------- 
Tiffany  Smith  www.example.com/accountname=%3DTiffany%7LSmith 
john  doe   NA 
関連する問題