我正在通过C#导入一些数据时让我的生活更轻松,如果我可以在SQL端进行所有转换和转换(以及设置正确的列长度),那将节省大量时间。不是在C#中(因为我的C#代码都是动态的,不是硬编码的,而且当东西不是正确的长度时它会掉下来)。这或多或少是我正在做的非常小的规模:
CREATE VIEW vw_pendingitems
AS
SELECT
CAST(a.columnone AS CHAR(1)) 'Column 1',
CAST(a.columntwo AS CHAR(1)) 'Column 2',
CAST(a.adecimalcolumn AS VARCHAR(30)),
CAST(null AS VARCHAR(20)) 'A not yet defined column',
b.anintcolumn 'An int column'
FROM table1 a
JOIN table2 b ON a.key = b.key
前两列工作正常,但我认为当我抛出null时我遇到了问题。有没有其他/更好的方法来做我想要完成的事情?
答案 0 :(得分:1)
CAST
应该可以使用可为空的列正常工作。它只会返回NULL
。如果您不想NULL
,则可以使用ISNULL
。
SELECT ISNULL(CAST(NULL AS VARCHAR(20)), '') 'A not yet defined column'
您应该小心更改数据类型。如果使用较小的数据类型,则可能会丢失数据或出错。