C# 希望创建具有一个附加列的新行

C# 希望创建具有一个附加列的新行,c#,sql-server,sql-server-2008,C#,Sql Server,Sql Server 2008,我想从上面的桌子 我们得到: 我希望很明显,我正在增加这种类型的价值。 我不能为此更改我的数据库结构 希望创建一个包含一个附加列的新行。我希望第2行中的preferenceValue是新行中的第4个值。否则,我需要第1行的正常值。这样就可以了。删除-type和-value后缀后,只需使用相同的值和类型前缀将表连接到自身。在查询中,t表示类型,v表示值 SELECT t1.memberid, t1.preferencekey, t1.preferencevalue, t2.preferenceV

我想从上面的桌子 我们得到:

我希望很明显,我正在增加这种类型的价值。 我不能为此更改我的数据库结构

希望创建一个包含一个附加列的新行。我希望第2行中的preferenceValue是新行中的第4个值。否则,我需要第1行的正常值。

这样就可以了。删除-type和-value后缀后,只需使用相同的值和类型前缀将表连接到自身。在查询中,
t
表示类型,
v
表示值

SELECT t1.memberid, t1.preferencekey, 
t1.preferencevalue, t2.preferenceValue, 
t1.category, t1.itemTypeId
FROM tablename t1
JOIN tablename t2 on t1.memberid = t2.memberid 
    AND t2.preferenceKey = replace(t1.preferenceKey, 'TYPE', 'VALUE')
WHERE t1.preferenceKey like '%TYPE'
Select 
   t.memberid, 
   t.preferencekey, 
   v.preferencevalue, 
   t.category, 
   t.itemtypeid 
from @t t
JOIN 
(
    Select * From @t t
    Where CHARINDEX('-VALUE', t.preferencekey) > 0
) v
ON REPLACE(t.preferencekey,'-TYPE','') = REPLACE(v.preferencekey,'-VALUE','')
Where CHARINDEX('-TYPE', t.preferencekey) > 0
输出
是否为该问题准备了任何“值”列?在我看来,您不希望合并行,而是希望创建一个包含一个附加列的新行。您希望第2行的
首选项值
成为新行的
4th
值。否则您想要
第1行
正常值吗?@Rohit好的,这就是我所想的,看起来codingbiz下面有您的答案。添加
,t.preferencevalue为“固定”
Select 
   t.memberid, 
   t.preferencekey, 
   v.preferencevalue, 
   t.category, 
   t.itemtypeid 
from @t t
JOIN 
(
    Select * From @t t
    Where CHARINDEX('-VALUE', t.preferencekey) > 0
) v
ON REPLACE(t.preferencekey,'-TYPE','') = REPLACE(v.preferencekey,'-VALUE','')
Where CHARINDEX('-TYPE', t.preferencekey) > 0
19  6E-SF-TYPE  0   Service Fee 1
19  6ES-SF-TYPE 100 Service Fee 1
19  9H-SF-TYPE  0   Service Fee 1