我已經從Sybase數據庫中使用Eclipse運行查詢。我需要消除重複的條目,但結果有混合類型 - INT和TEXT。 Sybase不會在TEXT字段中做出明顯的改變。當我保存所有結果並將其粘貼到Excel中時,一些TEXT字段會滲入到INT字段列中 - 這使Excel刪除重複項變得困難。將所有結果保存到Excel
我在想我可以爲我的查詢創建一個別名,添加一個臨時表,從別名中選擇不同的INT列值,然後再次查詢別名,這次包括TEXT值。然後,當我導出數據時,我將它保存到Word中。它應該是這樣的:
SELECT id, text
FROM tableA, TableB
WHERE (various joins here...)
AS stuff
CREATE TABLE #id_values
(alt_id CHAR(8) null)
INSERT INTO #id_values
(SELECT DISTINCT id
FROM stuff)
SELECT id, text
FROM stuff a
WHERE EXISTS (SELECT 1 FROM #id_values WHERE b.alt_id = a.id)
如果是在Excel中更好地格式化數據我也不會做對DB side.I所有這些操作在Excel導入對話框中嘗試了多種不同格式的方式。 。導入爲製表符分隔,用相同的最終結果空格分隔。
附加信息:我將TEXT轉換爲VARCHAR,但是現在我需要一個新列,每個ID最多有5個條目。 ID - > TYPE是1-many?獨特的工作原始列表,但現在我需要弄清楚如何顯示與每個id在一行中的所有新的列值。新列是CHAR(4)。
現在我原來的選擇看起來是這樣的:
SELECT DISTINCT id, CONVERT(VARCHAR(8192), text), type_cd
FROM TableA, TableB
...etc
我再次獲得多行每個type_cd連接到一個id。我也意識到我不認爲我需要'b'。別名在* alt_id *之前。
此外,無論我如何格式化查詢(TEXT或VARCHAR),Excel都會繼續將文本放到id行中。也許這不是一個SQL問題,而是Excel或者Eclipse。
謝謝戈登。轉換髮生在我身上,我想我嘗試了使用convert(varchar(8000),text),我不記得它爲什麼不起作用。有些文本值很長,所以我將VARCHAR做得相當大 - 所以它的大小約爲目前發現的最大的3倍。我明天再來檢查一下,看看我是否錯過了其他的東西。 – djailer 2012-07-22 23:47:09
ooops。編輯完成之前,我離開了該頁面。至於on子句...這是一個外連接 - 當我需要來自兩個表的所有數據時。我錯在假設我只需要內連接?我不想從a.id得到任何不在b.alt_id中的行。 – djailer 2012-07-22 23:57:19