为SQL结果添加前缀

时间:2013-01-07 09:21:39

标签: sql sql-server sql-server-2008

可以请一些人解释如何在我的方案中为“名称”列添加前缀。

我想在两个相同的表之间创建UNION。 两者都包含字段“名称”。在列名中我想添加前缀“TABLE-A-”或“TABLE-B - ”。

我知道我可以通过N'PREFIX' + Name在select中执行此操作,但问题是某些记录已经有前缀而有些记录没有。因此,通过使用它将为这些记录创建一个双重前缀......

有什么想法吗?

5 个答案:

答案 0 :(得分:2)

您可以使用CASE表达式有条件地添加前缀:

CASE WHEN Name like 'A1-%' THEN Name ELSE N'A1-' + Name END

答案 1 :(得分:1)

case left(Name, 3) when N'A1-' then N'' else N'A1-' end + Name

答案 2 :(得分:1)

您可以使用CASE表达式:

CASE WHEN col1 LIKE 'TABLE-A-%' THEN col1 ELSE 'TABLE-A-' || col1 END

或者,您可以使用UNION of 4选择:

select col1 FROM tab1 WHERE col1 LIKE 'TABLE-A-%'
UNION
select 'TABLE-A-' || col1 FROM tab1 WHERE col1 NOT LIKE 'TABLE-A-%'
UNION
<same stuff for table B>

答案 3 :(得分:1)

SELECT 'TABLE-A'+REPLACE(Name,'TABLE-A','') 
FROM [TABLE-A]
UNION ALL
SELECT 'TABLE-B'+REPLACE(Name,'TABLE-B','') 
FROM [TABLE-B]

拉​​吉

答案 4 :(得分:0)

添加&#39; +&#39;国家代码前的符号

UPDATE [masters].[country] SET Countrycode = '+' +Countrycode

output:
=========== 
countrycode 
+91,
+355,
....