我想一個空行添加到我的結果集在我的SQL查詢的最頂端。
我使用的查詢是這樣的:
SELECT
PROFILETITLE, DOCID
FROM
PROFILES
WHERE
COMPANYCODE = ?
ORDER BY
PROFILETITLE
我想一個空行添加到我的結果集在我的SQL查詢的最頂端。
我使用的查詢是這樣的:
SELECT
PROFILETITLE, DOCID
FROM
PROFILES
WHERE
COMPANYCODE = ?
ORDER BY
PROFILETITLE
嘗試使用union all
SELECT null as PROFILETITLE, null as DOCID
UNION ALL
SELECT PROFILETITLE, DOCID
FROM PROFILES
WHERE COMPANYCODE=?
ORDER BY PROFILETITLE
,但如果你不會添加標題,如果DOCID
是int
類型,你必須使用union all
和cast
如下
SELECT 'PROFILETITLE' as PROFILETITLE, 'DOCID' as DOCID
UNION ALL
SELECT PROFILETITLE, CAST (DOCID AS varchar(30))
FROM PROFILES
WHERE COMPANYCODE=?
ORDER BY PROFILETITLE
試試這個:
SELECT '' AS PROFILETITLE, 0 AS DOCID
UNION ALL
SELECT PROFILETITLE, DOCID
FROM PROFILES WHERE COMPANYCODE = ?
ORDER BY PROFILETITLE
注意,使用UNION
時,和所有其他的操作集,列在類型相匹配,所以您必須將前兩個空值與PROFILETITLE
和DOCID
別名。爲了正常工作,您必須注意兩列的類型以及匹配。可能是您需要選擇NULL
而不是''
和0
。
是:[SQL-Fiddle測試](http://sqlfiddle.com/#!3/3144b/3) –
尼斯的答案.... – Seasoned
您可以使用SQL Union
SELECT PROFILETITLE, DOCID
FROM PROFILES
WHERE COMPANYCODE=? ORDER BY PROFILETITLE
UNION ALL
SELECT 0, ''
FROM SYSIBM.SYSDUMMY1
您可以用臨時表替換SYSIBM.SYSDUMMY1
工會都將做的工作
SELECT
'' as PROFILETITLE,
'' as DOCID
UNION ALL
SELECT PROFILETITLE, DOCID
FROM PROFILES
WHERE COMPANYCODE=? ORDER BY PROFILETITLE
您可以添加一個「空行」,如果所有的列都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
什麼是空行?假設'DOCID'是一個'int',爲整數定義爲空。 –
哦,我很抱歉 - 一行給出了該行的空白結果。 –