Sql 插入到选择中-一次收缩两列
我正试图将两列-Sql 插入到选择中-一次收缩两列,sql,sql-server-2008,Sql,Sql Server 2008,我正试图将两列-note和app从dbo.UCAST3$-压缩到klient.appendix中 这就是我如何用小注释缩小两列:[note]+'附录:'+[app] 我尝试了以下几点: INSERT INTO dbo.klient (name, surname, rodcis, nopass, street, zip, city, appendix, tel, fax, titul, akce, rocnik) SELECT [nameorig], [surnameorig]
note
和app
从dbo.UCAST3$
-压缩到klient.appendix中
这就是我如何用小注释缩小两列:[note]+'附录:'+[app]
我尝试了以下几点:
INSERT INTO dbo.klient
(name, surname, rodcis, nopass, street, zip, city, appendix, tel, fax, titul, akce, rocnik)
SELECT
[nameorig], [surnameorig], [rodcisorig], [nopassorig], [adresa], [ZIP], [place],
[note] + ' appendix: ' + [app], [telhome], [telwork], titul, '000000-00', 2014
FROM dbo.UCAST3$
我发现以下错误:
将数据类型varchar转换为数字时出错
它似乎正在跳到下一列nopassorig
,这是一个数字
谁能帮我解决这个问题
[注意]
是十进制(30,0)
[app]
是nvarchar(255)
决不,决不,决不在一列中存储多个值!
请不要这样做。如果您想在SQL中再次分离这些值,这将是一个痛苦而缓慢的过程
只要在SQL select语句中指定您需要的值即可。Never,Never,Never,Never在一列中存储多个值!
请不要这样做。如果您想在SQL中再次分离这些值,这将是一个痛苦而缓慢的过程
只要在SQL select语句中指定需要的值即可。您需要将[note]强制转换为varchar才能成功连接
INSERT INTO dbo.klient
(name, surname,rodcis,nopass,street,zip,city,appendix,tel,fax,titul,akce,rocnik)
SELECT [nameorig], [surnameorig],[rodcisorig],
[nopassorig],[adresa],[ZIP],[place],
CAST([note] as VARCHAR(30)) + ' appendix: ' + [app],
[telhome],[telwork],titul,'000000-00',2014
FROM dbo.UCAST3$
您需要将[note]强制转换为varchar才能成功连接
INSERT INTO dbo.klient
(name, surname,rodcis,nopass,street,zip,city,appendix,tel,fax,titul,akce,rocnik)
SELECT [nameorig], [surnameorig],[rodcisorig],
[nopassorig],[adresa],[ZIP],[place],
CAST([note] as VARCHAR(30)) + ' appendix: ' + [app],
[telhome],[telwork],titul,'000000-00',2014
FROM dbo.UCAST3$
答案取决于您的数据库引擎和三列的数据类型。您好,感谢您的帮助:[note]是十进制(30,0)[app]是nvarchar(255)
和SQL Server 2008答案取决于您的数据库引擎和三列的数据类型。您好,感谢您的帮助:[note]是十进制(30,0)[app]是nvarchar(255)
和SQL Server2008@marc_sno marc sir我不知道CASE语句中的默认长度,在数据定义中为1,在CAST和convert函数中为30。@marc_s no marc sir我不知道CASE语句中的默认长度,在数据定义中为1,在CAST和convert函数中为30。