2017-05-23 1 views
0

私はこれを解決することを任されましたが、私は今数日間それと戦い続けています。誰でもそれを解決するのに役立つことができますか? 、テーブル変数内のデータをシャッフルするスクリプト

-- address line 1: 'Churchill house' 
-- address line 2: ' ' 
-- address line 3: '30 Boston Road' 
-- address line 4: ' ' 
-- address line 5: 'lusaka' 
-- postcode: 'e12 3re' 

2アップシャッフルするためのスクリプトを書く: 、ID列、5本のアドレス線及び郵便番号列を有するテーブル変数に次の値を挿入するT-SQLを書きます質問1

-- address line 1: 'Churchill house' 
-- address line 2: ' ' 
-- address line 3: '30 Boston Road' 
-- address line 4: ' ' 
-- address line 5: 'lusaka' 
-- postcode: 'e12 3re' 
+1

最初にあなたがしたことを示し、それがうまくいかなかった理由を示します。さもなければ、あなたはすでにあなたが排除したことをあなたに伝えるために時間を無駄にしているかもしれません。あるいは、彼らはあなたが実際に何かを試していないと答えていないと思うかもしれません!それはあなたが実際に何かを試してみる前に他の人にあなたのためにそれを書くようになることを示すのに役立ちます。 –

答えて

1

からテーブル変数のアドレスライン最初の部分は非常に単純です:

declare @t table (
    id int identity(1,1) 
    , address_line_1 varchar(64) 
    , address_line_2 varchar(64) 
    , address_line_3 varchar(64) 
    , address_line_4 varchar(64) 
    , address_line_5 varchar(64) 
    , postal_code varchar(64) 
); 

insert into @t values ('Churchill house','','30 Boston Road','','lusaka','e12 3re') 

select * from @t 

リターン:

+----+-----------------+----------------+----------------+----------------+----------------+-------------+ 
| id | address_line_1 | address_line_2 | address_line_3 | address_line_4 | address_line_5 | postal_code | 
+----+-----------------+----------------+----------------+----------------+----------------+-------------+ 
| 1 | Churchill house |    | 30 Boston Road |    | lusaka   | e12 3re  | 
+----+-----------------+----------------+----------------+----------------+----------------+-------------+ 

あなたは "シャッフル" を定義する方法に応じて、これで十分である。

update @t 
set address_line_1 = address_line_2 
    , address_line_2 = address_line_3 
    , address_line_3 = address_line_4 
    , address_line_4 = address_line_5 
    , address_line_5 = address_line_1 

select * from @t 

リターン:

+----+----------------+----------------+----------------+----------------+-----------------+-------------+ 
| id | address_line_1 | address_line_2 | address_line_3 | address_line_4 | address_line_5 | postal_code | 
+----+----------------+----------------+----------------+----------------+-----------------+-------------+ 
| 1 |    | 30 Boston Road |    | lusaka   | Churchill house | e12 3re  | 
+----+----------------+----------------+----------------+----------------+-----------------+-------------+ 

rextesterデモ: http://rextester.com/WLPAMZ69008

関連する問題