我想創建一個具有動態列數的表,具體取決於其他表的行值。 例如,我有一個表(表1),它有2列名爲'VALUE'和'ISACTIVE'(如果我們需要考慮這個值作爲新表中的一列)'ISACTIVE'列取值1需要創建具有新表: 一些新表的列(和列名)=表1的值,其中Isactive = 1T-SQL /創建一個表,他的列取決於其他表的行
0
A
回答
0
嘗試一下below.This是假設所有列是整數。我們可以進行相應的修改,如果它是VARCHAR。我們需要改變現有的表和添加一個名爲textval欄默認爲「0」這裏
drop table test
create table test
(
value integer,
isactive integer
);
alter table test add textval nvarchar(max) default '0'
insert into test (value,isactive) values (123,5);
select * from test;
現在更新基於isactive價值的新列。如果是5的新列w ^生病有col5所有beign整數,並用它來創建一個新表
begin
declare @i integer;
set @i=1
declare @isactive integer;
declare @stmt nvarchar(max);
declare @stmt2 nvarchar(max);
declare @testval nvarchar(max);
set @isactive= (select isactive from test)
while (@i <[email protected])
begin
declare @textval nvarchar(max);
set @textval = (select textval from test)
set @stmt= 'update test set textval = '''+ @textval +'col' +cast(@i
as varchar(100)) + ' ' + 'integer,'''
execute sp_executesql @[email protected]
set @[email protected]+1;
end
set @testval=(select left(replace(textval,'0col1','col1'),len(textval)-2)
from test)
set @stmt2 ='create table tab1 (' + @testval + ')';
execute sp_executesql @[email protected];
end
0
SELECT [attributeName] INTO [DatabaseName].[dbo].[NewTableName]
FROM [DatabaseName].[dbo].[FromTableName] WHERE ISACTIVE=1
0
我首先想到的是基於一個過程動態創建在你的條件下。閱讀這個問題和答案,這將有所幫助。
T-SQL How to create tables dynamically in stored procedures?
原料例如
DECLARE @SQLString NVARCHAR(MAX)
SET @SQLString = N'CREATE TABLE <table_name> ('
-- Conditons here
SET @SQLString = @SQLString + '<column_name> <type>'
-- End of conditions
SET @SQLString = @SQLString + ')'
EXEC (@SQLString)
相關問題
- 1. MS SQL使一個表的列取決於其他表值sum
- 2. 基於創建表的其他兩列
- 3. 列取決於其他列
- 4. 創建一個新表與其他表
- 5. MySQL的,這取決於多個其他行表
- 6. R中的列表排序列表:排序一個列表的值取決於其他列表的值
- 7. 選擇價格取決於其他表
- 8. mysql查詢取決於其他表
- 9. TSQL更新表與其他
- 10. 如何創建合併其他兩個列表的列表?
- 11. 如何遍歷一個列表來創建一個特定的其他列表
- 12. 取決於其他列的值
- 13. 取決於其他列的總和值
- 14. 創建其數組的鍵和值取決於其他數組
- 15. 取決於其他表的篩選器陣列
- 16. JavaFX Tableview - 列值取決於其他列
- 17. 創建具有取決於其他兩列(以R)
- 18. 創建的列從其他表中記錄一個SQL視圖
- 19. MySql嘗試從兩個其他表的列創建表
- 20. 列添加到現有的表我想一列添加到現有表,其價值依賴於其他的列存儲其值取決於其他列
- 21. Git:創建一個取決於多個其他Gerrit更改的提交?
- 22. 從其他表中的列操作創建表中的表
- 23. 如何創建上述其他列表
- 24. LINQ語句從一個表中獲取值取決於其他表
- 25. 創建一個包含其他列表元素引用的新列表?
- 26. 取決於其他2臺
- 27. 取決於其他變量
- 28. Excel創建基於其他單元格的分類列表
- 29. TSQL從其他表中選擇其中
- 30. 從其他表更新表,其中行等於一個值
什麼應該是我們創建的列的數據類型? – Aparna
您是否試圖根據您的條件動態創建它(動態SQL查詢)? – Cosmin