我想选择其名称不包含Id的每一列
这就是我的尝试:
Select *
From Table_Name
Where Column_Name Like '%Id%'
解决方案是什么?
答案 0 :(得分:0)
我认为你会想要使用INFORMATION_SCHEMA。
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Name Of Your Table, As A String'
AND COLUMN_NAME NOT LIKE '%Id%'
答案 1 :(得分:0)
你可以这样做。假设表为列id,value1,value2。您需要选择名称为value
的列名。
CREATE TABLE [dbo].[tbl1](
[id] [int] IDENTITY(1,1) NOT NULL,
[value1] [varchar](2) NULL,
[value2] [varchar](4) NULL)
GO
create table #tblcols (colname varchar(100))
insert into #tblcols
select Column_name from INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'tbl1'
delete from #tblcols where colname not like '%val%'
select * from #tblcols
declare @sql nvarchar(500)
SELECT @sql = COALESCE(@sql + ', ', ' ') + colname FROM #tblcols
set @sql = 'select ' + @sql + ' from tbl1'
select @sql
exec sp_executesql @sql
drop table #tblcols
然后,使用动态SQL创建像select value1,value2 from tbl
这样的sql语句。并使用EXEC SP_EXECUTESQL @SQL
来获得结果。
答案 2 :(得分:-3)
试试这个:
select * from sys.columns where
name NOT like '%ID%'
或
select * from INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME NOT like '%ID%'