sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 - Address フィールドの分離

    SQL での文字列の解析は面倒で、もろくなりがちです。私は通常、これらの種類のタスクを完全に SQL の外で行うのが最善だと考えています。とはいえ、上記のミニスペックを考えると、次のようにデータを必要なフィールドに解析することが可能です:

    select 
      left(PostalAddress, charindex('^', PostalAddress) - 1) as street_address,
      left(second_part, len(second_part) - charindex(' ', reverse(second_part))) as suburb,
      right(second_part, charindex(' ', reverse(second_part))) as state,
      reverse(substring(reverse(PostalAddress), 2, 4)) as postal_code
    from (
      select
        PostalAddress,
        rtrim(reverse(substring(reverse(PostalAddress), 6, len(PostalAddress) - charindex('^', PostalAddress) - 5))) as second_part
      from Addresses
    ) as t1
    

    上記のサブクエリでアドレスと呼んだものをテーブル名に置き換える必要があることに注意してください。

    こちら でサンプル データに対する動作を確認できます。 。



    1. psqlクエリ結果でテーブルの境界線スタイルを変更する方法

    2. データベーステーブル情報を取得するためのストアドプロシージャ

    3. 日付グループ化されたテーブルのデータのsymfony出力

    4. SQLServer全文検索を使用して製品分析を実行する方法を学びます。パート2