1

たとえば、次の表があるとします。

Address Line 1 | Address Line 2 | Address Line 3 | Town | Region | Postcode

これからすべての行を選択し、その行を1つの文字列として返す方法はありますか?

AddressLine1 + AddressLine 2 + AddressLine 3 etc.....

これがSQLにとって非常に新しい基本的な質問である場合は、お詫び申し上げます。

4

5 に答える 5

2

オラクルでは||を使用しました

Select AddressLine1 || ',' || AddressLine2 from address;

構文はデータベースサーバーごとに異なります

于 2012-08-10T13:55:48.173 に答える
2

MS SQLの場合、これは私が使用するものです。

SELECT    ([Address Line 1] + ', ' + [Address Line 2] + ', ' + [Address Line 3] + ', ' 
          + Town + ', ' + Region + ', ' + Postcode) AS Address
FROM      TableName
于 2012-08-10T13:55:56.630 に答える
1

MySQLの場合、CONCAT()関数を使用する必要があるため、次のようになります。

SELECT CONCAT( AddressLine1, ', ', AddressLine2, ', ', AddressLine3, ', ', Town, ', ', Region, ', ', Postcode ) AS LongAddress 
FROM ADDRESSES;

', 'ただし、すべてのフィールドの間に追加することを避けたい場合は、CONCAT_WS()代わりに次を使用する必要があります。

SELECT CONCAT_WS( ', ', AddressLine1, AddressLine2, AddressLine3, Town, Region, Postcode ) AS LongAddress 
FROM ADDRESSES;
于 2012-08-10T14:03:07.687 に答える
1

これを試してください:(SQL Server)

ISNULL()関数を使用することを忘れないでください。この関数は、列がnullの場合に列を''に変換するだけです。そうしないと、いずれかの列がnullの場合、行全体が空白になります。

select isnull([Address Line 1],'')+' '+
       isnull([Address Line 2],'')+' '+
       isnull([Address Line 3],'')+' '+
       isnull(Town,'') +' '+ 
       isnull(Region,'') +' '+ 
       isnull(Postcode,'')
from <table>
于 2012-08-10T14:15:29.173 に答える
0

SQL-Server 2008タグを実現しましたが、参考までに、SQL Server 2012はCONCAT関数を実装しているため、CONCAT(AddressLine1、'、'、AddressLine2)などを実行できます。そして、この関数はNULLを空の文字列として扱うので、「JoeGJoseph」の心配はSQL2012には存在しません:)

于 2012-08-10T14:22:14.953 に答える