8

重複の可能性:
クエリ結果に空白行を含める

SQLクエリの一番上にある結果セットに空の行を追加したいと思います。

私が使用しているクエリは次のとおりです。

SELECT 
    PROFILETITLE, DOCID 
FROM
    PROFILES
WHERE 
    COMPANYCODE = ? 
ORDER BY 
    PROFILETITLE
4

5 に答える 5

10

使用してみてくださいunion all

SELECT null as PROFILETITLE, null as DOCID 
UNION ALL
SELECT PROFILETITLE, DOCID 
FROM PROFILES
WHERE COMPANYCODE=? 
ORDER BY PROFILETITLE

ただし、ヘッダーを追加しない場合、およびタイプの場合DOCID は、以下を使用する必要があります。intunion allcast

SELECT 'PROFILETITLE' as PROFILETITLE, 'DOCID' as DOCID 
UNION ALL
SELECT PROFILETITLE, CAST ( DOCID AS varchar(30) )
FROM PROFILES
WHERE COMPANYCODE=? 
ORDER BY PROFILETITLE
于 2012-10-10T08:36:29.703 に答える
4

これを試して:

SELECT '' AS PROFILETITLE, 0 AS DOCID
UNION ALL
SELECT PROFILETITLE, DOCID
FROM PROFILES WHERE COMPANYCODE = ? 
ORDER BY PROFILETITLE

、および他のすべてのセット操作を使用する場合UNION、列は型で一致する必要があるため、最初の2つの空の値をPROFILETITLEとでエイリアス化する必要があることに注意してくださいDOCID。また、正しく機能するためには、2つの列のタイプも一致するように注意する必要があります。とNULLの代わりに選択する必要があるかもしれません。''0

于 2012-10-10T08:36:04.033 に答える
3

varcharすべての列が次のように空である場合は、「空の行」を追加できます''

SELECT PROFILETITLE, DOCID 
FROM PROFILES
WHERE ...

UNION ALL

SELECT '' AS PROFILETITLE, '' AS DOCID

ORDER BY 
  CASE WHEN PROFILETITLE='' AND DOCID='' THEN 0 ELSE 1 END ASC
, PROFILETITLE ASC
于 2012-10-10T08:39:24.333 に答える
0

SQLを使用できますUnion

SELECT PROFILETITLE, DOCID 
FROM PROFILES
WHERE COMPANYCODE=? ORDER BY PROFILETITLE
UNION ALL
SELECT 0, '' 
FROM SYSIBM.SYSDUMMY1

SYSIBM.SYSDUMMY1を一時テーブルに置き換えることができます

于 2012-10-10T08:36:43.393 に答える
0

組合全員がその仕事をするだろう

SELECT 
'' as PROFILETITLE,
'' as DOCID
UNION ALL
SELECT PROFILETITLE, DOCID 
FROM PROFILES
WHERE COMPANYCODE=? ORDER BY PROFILETITLE
于 2012-10-10T08:39:15.330 に答える