0

有人可以解释一下我将如何在我的场景中为“名称”列添加前缀。

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

我知道我可以N'PREFIX' + Name在选择中做到这一点,但问题是有些记录已经有前缀,而有些则没有。因此,通过使用这将为这些记录创建一个双前缀......

任何的想法?

4

5 回答 5

2

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

CASE WHEN Name like 'A1-%' THEN Name ELSE N'A1-' + Name END
于 2013-01-07T09:24:36.273 回答
1
case left(Name, 3) when N'A1-' then N'' else N'A1-' end + Name
于 2013-01-07T09:24:50.640 回答
1

您可以使用 CASE 表达式:

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

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

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>
于 2013-01-07T09:25:41.710 回答
1
SELECT 'TABLE-A'+REPLACE(Name,'TABLE-A','') 
FROM [TABLE-A]
UNION ALL
SELECT 'TABLE-B'+REPLACE(Name,'TABLE-B','') 
FROM [TABLE-B]

拉吉

于 2013-01-07T09:32:41.057 回答
0

在国家代码前添加一个“+”符号

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

output:
=========== 
countrycode 
+91,
+355,
....
于 2016-01-11T15:11:34.653 回答