【发布时间】:2019-04-15 13:33:45
【问题描述】:
我收到此错误:
消息 120,第 15 级,状态 1,第 12 行
INSERT 语句的选择列表包含的项目少于插入列表。 SELECT 值的数量必须与 INSERT 列的数量相匹配。
如何从表和insert into @t1 中选择一个字符串以获得最终结果,例如:
| Date1 | Date2 | Date3 | Date4 | Date5 |
+-------------+-------------+--------------+-------------+---------------+
|'Feb 5 2019'|'Feb 4 2019'|'Feb 1 2019 '|'Jan 30 2019'|'Jan 18 2019 ' |
我必须运行一个存储过程来创建一个动态列。
找到最大列数后,我创建表并尝试插入表中。
我想从一个字符串中选择一些语句,那些SQL字符串存储在这样的表中
显示我的代码:
declare @t1 table (id0 datetime,id1 datetime,id2 datetime,id3 datetime,id4 datetime)
INSERT INTO @t1 (id0,id1,id2,id3,id4)
select Dates = STUFF((
SELECT ',''' +TRSDate + '''' FROM [StandaloneDWH].[zru].[r435_436tcr] where CLM_Id =90
FOR XML PATH('')
), 1, 1, '')
执行代码后:
select Dates = STUFF((
SELECT ',''' +TRSDate + '''' FROM [StandaloneDWH].[zru].[r435_436tcr] where CLM_Id =90
FOR XML PATH('')
), 1, 1, '')
它显示:
| Dates |
|------------------------------------------------------------------------|
|'Feb 5 2019','Feb 4 2019','Feb 1 2019 ','Jan 30 2019','Jan 18 2019 ' |
我怎么能这样执行并插入@t1
select
'Feb 5 2019','Feb 4 2019','Feb 1 2019 ','Jan 30 2019','Jan 18 2019 '
得到最终结果?
【问题讨论】:
-
您使用的是哪个 dbms? (该代码是特定于产品的。)
标签: sql-server tsql dynamic-sql