我已經使用以下CAST功能沒有顯示出來,以從int改變爲varcharCAST功能/填充成功地執行,但在表結果
SELECT Genre,
GenreUpdated = LEFT(REPLICATE('x',12) + CAST(Genre AS VARCHAR (23)),23)
FROM Artists
查詢成功執行,結果如下;
Genre GenreUpdated
1 Pop xxxxxxxxxxxxPop
2 Pop xxxxxxxxxxxxPop
3 Grunge xxxxxxxxxxxxGrunge
4 Alternative xxxxxxxxxxxxAlternative
5 Soul xxxxxxxxxxxxSoul
但是,當我想通過使用代碼SELECT * FROM Artists
檢索表,我得到以下;
Artist Genre Country GenreUpdated
1 The Beatles Pop UK Pop
2 The Beach Boys Pop USA Pop
3 Nirvana Grunge USA Grunge
4 The Velvet Underground Alternative USA Alternative
5 Marvin Gaye Soul USA Soul
我想表列「GenreUpdated」看上面一樣,在包括所有的X字符,包括填充。
我曾嘗試使用INSERT
函數來包含如下的填充;
INSERT INTO Artists (GenreUpdated)
SELECT REPLICATE ('x',23 - DATALENGTH(GenreUpdated)) + GenreUpdated AS 'Varchar Column'
FROM Artists
然而,這給我的錯誤消息「無法將NULL值插入列‘藝術家’,表‘BestAlbums2.dbo.Artists’;列不允許空INSERT失敗。」儘管我的列屬性是varchar(23)null,但會出現此錯誤。
任何人都可以幫助和建議我哪裏錯了嗎?
謝謝大家。
謝謝,當我看到您的回答和您的解釋時,我顯然是在犯一個基本錯誤。太盯着它,重試我的代碼,以實現我的基本錯誤。希望我不會再犯這個錯誤。 – Josie