我正在將我的數據從表T導出到CSV文件,T有幾個varchar列,在處理時,我不知道來自數據倉庫的數據的長度如此我將長度設置爲500(假設),在導出到csv文件後,我注意到它在基於列長度的數據之後放置了額外的空格。SQL使用變量來改變列的長度
我想要做的是將列長度改爲最大數據。所以有兩個問題。
- 獲取表格中列中數據的最大長度。
使用變量來改變列,下面的代碼不起作用,說明「@l'附近的語法不正確。
DECLARE @l int SET @l = 12 ALTER TABLE Temp ALTER COLUMN a VarChar(@l)
一)這聽起來像某處的數據被視爲'CHAR(x)的',而不是'VARCHAR(x)的'。正如你所描述的那樣,CHAR(x)'將填充空格添加到最後。 b)我不建議改變色譜柱長度。只需使用適當大的'VARCHAR(x)'(例如'VARCHAR(500)'或'VARCHAR(MAX)')並在適當的階段執行'RTRIM()'。 –