2

SQL Server 2008 r2 Web Edition データベースの行を更新しようとしています。すでに行にあるフィールドを使用して連結する必要がありますか? そのフィールドを同じ行の別のフィールドの文字列に変換します。

これは、mlsnumber という列がある不動産データベース用です。別の列の文字列の一部として mlsnumber フィールドを使用する必要があります。同じ行は photoname です。

この場合、mlsnumber = 1234567、行を追加/更新する必要があるため、photoname= photo+mlsnumber+'-01.jpg' (photo1234567-01.jpg)

どんな助けでも大歓迎です。

ケン

4

4 に答える 4

6

テーブルが写真と呼ばれると仮定します

update photos set photoname = 'photo' + mIsnumber + '-01.jpg'

ミスナンバーが varchar でない場合は、実行できます

update photos set photoname = 'photo' + cast(mIsnumber as varchar(10)) + '-01.jpg'

ミスナンバーが null の場合、結果は null になるため、

update photos set photoname = 'photo' + coalesce(cast(mIsnumber as varchar(10)),'') + '-01.jpg'

更新するレコードをフィルタリングする場合は、where 句を追加することもできます。

さらに、これが常に当てはまる場合は、データをテーブルに保存するか、テーブルの計算フィールドを使用するのではなく、ビューを使用してデータを取得することを検討できます。

于 2013-08-24T13:16:37.840 に答える
1
update table1 set
   photoname = 'photo' + cast(mlsnumber as nvarchar(max)) + '-01.jpg'
where mlsnumber = 1234567

ビューでこれを選択することもできます。

create view vw_table1
as
    select
        *,
        'photo' + cast(mlsnumber as nvarchar(max)) + '-01.jpg' as photoname
    from table1
于 2013-08-24T13:16:17.943 に答える
1

これは、あなたの望むことですか?

UPDATE  t
SET     photoname = 'photo' + CAST(misnumber AS VARCHAR(255)) + '-1.jpg'
WHERE   misnumber = 1234567;

すべての行に対して実行する場合は、where句を削除してください。

于 2013-08-24T13:16:30.617 に答える
1
Update tablename set photoname = 'photo'+mlsnumber+ '-01.jpg'

これによりすべての行が更新されるため、更新には注意してください。update ステートメントを単独でテストする場合は、 を使用begin transactionし、クエリを実行し、結果を確認してから、commitまたはを使用することができます。rollback

mlsnumber を変換する必要がある場合は、リンクhttp://msdn.microsoft.com/en-us/library/ms187928.aspxを参照してください。

于 2013-08-24T13:17:39.573 に答える