首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求查询已知的一张表中某个特定值所在字段的方法 ?该怎么解决

2012-04-10 
求查询已知的一张表中某个特定值所在字段的方法 ?知道表名,知道一个值,不知道是在哪个字段,怎么查?举例不

求查询已知的一张表中某个特定值所在字段的方法 ?
知道表名,知道一个值,不知道是在哪个字段,怎么查?

举例不限数据表。

[解决办法]

SQL code
CREATE TABLE Test1(    ID INT IDENTITY(1,1) NOT NULL,    UserName VARCHAR(100) NOT NULL,    Age INT)INSERT INTO Test1SELECT 'A',12 UNIONSELECT 'B',13 UNIONSELECT 'C',14 UNIONSELECT 'D',15DECLARE @TableColumn TABLE(Id INT IDENTITY(1,1),ColumnName VARCHAR(100))DECLARE @TotalNum INTDECLARE @Line INTDECLARE @Count IntDECLARE @Sqls NVARCHAR(4000)DECLARE @ColumnName VARCHAR(100)SET @Line = 1INSERT INTO @TableColumn SELECT nameFROM SYS.columnsWHERE OBJECT_NAME(OBJECT_ID) = 'Test1'SELECT @TotalNum = MAX(ID)FROM @TableColumnWHILE @Line <= @TotalNumBEGIN    SELECT @ColumnName = ColumnName    FROM @TableColumn    WHERE Id = @Line         set @Sqls='select @a=count(1) from Test1 WHERE ' + @ColumnName + '= ''15'''    exec sp_executesql @Sqls,N'@a int output',@Count output         IF @Count > 0    BEGIN        SELECT '数值所在列为:' + @ColumnName    END    SET @Line = @Line + 1END
[解决办法]
把 3楼的 改一下就可以。这里引用一下3楼的。
用like
SQL code
CREATE TABLE Test1(    ID INT IDENTITY(1,1) NOT NULL,    UserName VARCHAR(100) NOT NULL,    Age INT)INSERT INTO Test1SELECT 'A',12 UNIONSELECT 'B',13 UNIONSELECT 'C',14 UNIONSELECT 'D',15DECLARE @TableColumn TABLE(Id INT IDENTITY(1,1),ColumnName VARCHAR(100))DECLARE @TotalNum INTDECLARE @Line INTDECLARE @Count IntDECLARE @Sqls NVARCHAR(4000)DECLARE @ColumnName VARCHAR(100)SET @Line = 1INSERT INTO @TableColumn SELECT nameFROM SYS.columnsWHERE OBJECT_NAME(OBJECT_ID) = 'Test1'SELECT @TotalNum = MAX(ID)FROM @TableColumnWHILE @Line <= @TotalNumBEGIN    SELECT @ColumnName = ColumnName    FROM @TableColumn    WHERE Id = @Line         set @Sqls='select @a=count(1) from Test1 WHERE ' + @ColumnName + ' like ''15%'''    exec sp_executesql @Sqls,N'@a int output',@Count output         IF @Count > 0    BEGIN        SELECT '数值所在列为:' + @ColumnName    END    SET @Line = @Line + 1END 

热点排行