2

データはスキャン ツールに基づいて DB テーブルに自動的に書き込まれるため、列を手動で変更することはできません。2 つの行を 1 つに結合するクエリを作成しようとしています (operating_system 行の空白を operating_system_version 行のデータで埋めます)。

私が今持っているクエリは次のとおりです。

SELECT device_type, operating_system, operating_system_version
FROM DEVICES
WHERE user_name like '|%front-%|'
OR user_name like '|%back-%|'
OR user_name like '|%ap-%|'
OR user_name like '|%me-%|'
OR user_name like '|%mg-%|'

そしてそれは戻ります:

device_type    operating_system        operating_system_version


desktop         windows xp
desktop                                 windows 7 professional
desktop         windows xp              
desktop                                 windows 7 professional

次のようなものを返したいと思います:

device_type    OS


desktop         windows xp
desktop         windows 7 professional                        
desktop         windows xp              
desktop         windows 7 professional  

|| を追加してみました 以下のようですが、データは返されませんでした:

SELECT device_type, operating_system||operating_system_version
FROM DEVICES
WHERE user_name like '|%front-%|'
OR user_name like '|%back-%|'
OR user_name like '|%ap-%|'
OR user_name like '|%me-%|'
OR user_name like '|%mg-%|'                       
4

1 に答える 1

4
SELECT device_type, coalesce(operating_system,operating_system_version) AS OS
FROM DEVICES
WHERE user_name like '|%front-%|'
OR user_name like '|%back-%|'
OR user_name like '|%ap-%|'
OR user_name like '|%me-%|'
OR user_name like '|%mg-%|'

これにより、オペレーティング システムが選択されます。null の場合は、operating_system_version が選択され、列名 OS として返されます。

2つのフィールドを連結したい場合は、試してください

SELECT device_type, coalesce(operating_system,'') || coalese(operating_system_version,'') AS OS
FROM DEVICES
WHERE user_name like '|%front-%|'
OR user_name like '|%back-%|'
OR user_name like '|%ap-%|'
OR user_name like '|%me-%|'
OR user_name like '|%mg-%|'
于 2013-01-14T18:25:57.207 に答える