0

私のシナリオで列「名前」にプレフィックスを追加する方法を説明してください。

2 つの同一のテーブル間で 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 つの select の 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 に答える