精华内容
下载资源
问答
  • jqGrid动态获取列和列字段

    万次阅读 2016-10-22 14:48:23
    获取列名和列字段名显示在弹窗里,用复选框进行勾选2、实现源码 jqGrid动态获取列和列字段 th{ border: 1px solid #ABABAB; line-height: 20px; vertic

    1、问题背景

         jqGrid表格插件,利用自身方法获取表格的表头和表格字段;获取列名和列字段名显示在弹窗里,用复选框进行勾选


    2、实现源码

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title>jqGrid动态获取列和列字段</title>
    		<link rel="stylesheet" href="css/ui.jqgrid.css" />
    		<link rel="stylesheet" href="css/ui.jqgrid-bootstrap-ui.css" />
    		<link rel="stylesheet" href="css/bootstrap.css" />
    		<link rel="stylesheet" href="css/bootstrap-theme.css" />
    		<link rel="stylesheet" href="css/jquery-ui.css" />
    		<link rel="stylesheet" href="css/jquery-ui.theme.css" />
    		<script type="text/javascript" src="js/jquery-1.11.0.min.js" ></script>
    		<script type="text/javascript" src="js/jquery-ui.js"></script>
    		<script type="text/javascript" src="js/jquery.jqGrid.min.js" ></script>
    		<script type="text/javascript" src="plugins/grid.setcolumns.js"></script>
    		<style>
    			th{
    				border: 1px solid #ABABAB;
    				line-height: 20px;
    				vertical-align: middle;
    			}
    			td{
    				line-height: 20px;
    			}
    		</style>
    		<script>
    			$(document).ready(function(){
    				$("#jqTable").jqGrid({
    					url:"data/student.json",
    					height:380,
    					datatype:"json",
    					colNames:["序号","姓名","年龄","性别","QQ号","电话","地址"],
    					colModel:[{
    						name : 'id',
    						index : 'id',
    						label : '序号',
    						width : 60,
    						align:'center'
    					},{
    					    name : 'name',
    						index : 'name',
    						label : '姓名',
    						width : 120,
    						align:'center'
    					},{
    					    name : 'age',
    						index : 'age',
    						label : '年龄',
    						width : 120,
    						align:'center'
    					},{
    					    name : 'sex',
    						index : 'sex',
    						label : '性别',
    						width : 120,
    						edittype : "select",
    						formatter : 'select',
    						editoptions : {
    							value :'0:男;1:女;'
    						},
    						align:'center'
    					},{
    					    name : 'qq',
    						index : 'qq',
    						label : 'QQ号',
    						width : 120,
    						align:'center'
    					},{
    					    name : 'phone',
    						index : 'phone',
    						label : '电话',
    						width : 120,
    						align:'center'
    					},{
    					    name : 'address',
    						index : 'address',
    						label : '地址',
    						width : 200,
    						align:'center'
    					}],
    					sortname : "id",
    					sortorder : "desc",
    					viewrecords : true,
    					rownumbers:true,
    					autowidth:true,
    					jsonReader : {
    						repeatitems : false
    					}
    				});
    				
    				var dialog = $("#dialog-column").dialog({
    			      	autoOpen :false,
    					modal : true, 
    					resizable : true,
    			      	height: "auto",
    			      	width: 400,
    			      	align:'center',
    			      	buttons: {
    			        	"确定": function() {
    			          		$(this).dialog( "close" );
    			        	},
    			        	"关闭": function() {
    			            	$(this).dialog( "close" );
    			        	}
    			        }
    			    });
    			    
    			    $("#column").button().on("click", function() {
    			      	dialog.dialog("open");
    			      	//获取列名
    			      	var colNames=$("#jqTable").jqGrid('getGridParam','colNames');
    			      	//获取列字段
        				var colModel=$("#jqTable").jqGrid('getGridParam','colModel');
        				var table = "";
        				var newColumnName = [];
        			    var newColumnValue = [];
        				for (var i=0;i<colNames.length;i++) 
        				{
        					var columnHidden = colModel[i].hidden;
        					var columnName = colModel[i].name;
    	    				if(columnHidden==false && columnName != "rn")
    	    				{
    	    					newColumnName.push(colNames[i]);
    	    					newColumnValue.push(columnName);
    	    				}
    	    				console.info(columnName);
        				}
        				
        				for(var j=0;j<newColumnName.length;j++)
    	    			{
    	    				if(j%5==0)
        					{
        						table += "<tr>";
        					}
        					table += "<td><input type='checkbox' id='"+newColumnValue[j]+"' name='column' checked='checked'><label for='"+newColumnValue[j]+"'>"+newColumnName[j]+"</label></td>";
        					if((j+1)%5==0)
        					{
        						table += "</tr>";
        					}
    	    			}
        				
        				$("#tableColumn").empty().append(table);
    			    });
    			});
    		</script>
    	</head>
    	<body>
    		<div>
    			<table id="jqTable" class="table"></table>
    		</div>
    		<div>
    			<button id="column" type="button">显示</button>
    		</div>
    		<div id="dialog-column" title="设置列">
    		    <table id="tableColumn" style="width: 100%; height: 100px;">
    		    	
    		    </table>
    		</div>
    	</body>
    </html>
    

    3、实现结果

    (1)初始化


    (2)单击按钮


    展开全文
  • 方法一:使用拼接SQL,静态列字段; 方法二:使用拼接SQL,动态列字段; 方法三:使用PIVOT关系运算符,静态列字段; 方法四:使用PIVOT关系运算符,动态列字段; 扩展阅读一:参数化表名、分组列、行转...

    一.本文所涉及的内容(Contents)

    1. 本文所涉及的内容(Contents)
    2. 背景(Contexts)
    3. 实现代码(SQL Codes)
      1. 方法一:使用拼接SQL,静态列字段;
      2. 方法二:使用拼接SQL,动态列字段;
      3. 方法三:使用PIVOT关系运算符,静态列字段;
      4. 方法四:使用PIVOT关系运算符,动态列字段;
      5. 扩展阅读一:参数化表名、分组列、行转列字段、字段值;
      6. 扩展阅读二:在前面的基础上加入条件过滤;
    4. 参考文献(References)

    二.背景(Contexts)

      其实行转列并不是一个什么新鲜的话题了,甚至已经被大家说到烂了,网上的很多例子多多少少都有些问题,所以我希望能让大家快速的看到执行的效果,所以在动态列的基础上再把表、分组字段、行转列字段、值这四个行转列固定需要的值变成真正意义的参数化,大家只需要根据自己的环境,设置参数值,马上就能看到效果了(可以直接跳转至:“参数化动态PIVOT行转列”查看具体的脚本代码)。行转列的效果图如图1所示:

    wps_clip_image-32543

    (图1:行转列效果图)

    三.实现代码(SQL Codes)

    (一) 首先我们先创建一个测试表,往里面插入测试数据,返回表记录如图2所示:

    复制代码

    --创建测试表
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TestRows2Columns]') AND type in (N'U'))
    DROP TABLE [dbo].[TestRows2Columns]
    GO
    CREATE TABLE [dbo].[TestRows2Columns](
        [Id] [int] IDENTITY(1,1) NOT NULL,
        [UserName] [nvarchar](50) NULL,
        [Subject] [nvarchar](50) NULL,
        [Source] [numeric](18, 0) NULL
    ) ON [PRIMARY]
    GO
    
    --插入测试数据
    INSERT INTO [TestRows2Columns] ([UserName],[Subject],[Source]) 
        SELECT N'张三',N'语文',60  UNION ALL
        SELECT N'李四',N'数学',70  UNION ALL
        SELECT N'王五',N'英语',80  UNION ALL
        SELECT N'王五',N'数学',75  UNION ALL
        SELECT N'王五',N'语文',57  UNION ALL
        SELECT N'李四',N'语文',80  UNION ALL
        SELECT N'张三',N'英语',100
    GO
    
    SELECT * FROM [TestRows2Columns]

    复制代码

    wps_clip_image-8842

    (图2:样本数据)

    (二) 先以静态的方式实现行转列,效果如图3所示:

    复制代码

    --1:静态拼接行转列
    SELECT [UserName],
    SUM(CASE [Subject] WHEN '数学' THEN [Source] ELSE 0 END) AS '[数学]',
    SUM(CASE [Subject] WHEN '英语' THEN [Source] ELSE 0 END) AS '[英语]',
    SUM(CASE [Subject] WHEN '语文' THEN [Source] ELSE 0 END) AS '[语文]'     
    FROM [TestRows2Columns]
    GROUP BY [UserName]
    GO

    复制代码

    wps_clip_image-14456

    (图3:样本数据)

    (三) 接着以动态的方式实现行转列,这是使用拼接SQL的方式实现的,所以它适用于SQL Server 2000以上的数据库版本,执行脚本返回的结果如图2所示;

    按 Ctrl+C 复制代码

    --2:动态拼接行转列 DECLARE @sql VARCHAR(8000) SET @sql = 'SELECT [UserName],' SELECT @sql = @sql + 'SUM(CASE [Subject] WHEN '''+[Subject]+''' THEN [Source] ELSE 0 END) AS '''+QUOTENAME([Subject])+''',' FROM (SELECT DISTINCT [Subject] FROM [TestRows2Columns]) AS a SELECT @sql = LEFT(@sql,LEN(@sql)-1) + ' FROM [TestRows2Columns] GROUP BY [UserName]' PRINT(@sql) EXEC(@sql) GO

    按 Ctrl+C 复制代码

    (四) 在SQL Server 2005之后有了一个专门的PIVOT 和 UNPIVOT 关系运算符做行列之间的转换,下面是静态的方式实现的,实现效果如图4所示:

    复制代码

    --3:静态PIVOT行转列
    SELECT  *
    FROM    ( SELECT    [UserName] ,
                        [Subject] ,
                        [Source]
              FROM      [TestRows2Columns]
            ) p PIVOT
    ( SUM([Source]) FOR [Subject] IN ( [数学],[英语],[语文] ) ) AS pvt
    ORDER BY pvt.[UserName];
    GO

    复制代码

    wps_clip_image-23886

    (图4)

    (五) 把上面静态的SQL基础上进行修改,这样就不用理会记录里面存储了什么,需要转成什么列名的问题了,脚本如下,效果如图4所示:

    复制代码

    --4:动态PIVOT行转列
    DECLARE @sql_str VARCHAR(8000)
    DECLARE @sql_col VARCHAR(8000)
    SELECT @sql_col = ISNULL(@sql_col + ',','') + QUOTENAME([Subject]) FROM [TestRows2Columns] GROUP BY [Subject]
    SET @sql_str = '
    SELECT * FROM (
        SELECT [UserName],[Subject],[Source] FROM [TestRows2Columns]) p PIVOT 
        (SUM([Source]) FOR [Subject] IN ( '+ @sql_col +') ) AS pvt 
    ORDER BY pvt.[UserName]'
    PRINT (@sql_str)
    EXEC (@sql_str)

    复制代码

    (六) 也许很多人到了上面一步就够了,但是你会发现,当别人拿到你的代码,需要不断的修改成他自己环境中表名、分组列、行转列字段、字段值这几个参数,逻辑如图5所示,所以,我继续对上面的脚本进行修改,你只要设置自己的参数就可以实现行转列了,效果如图4所示:

    复制代码

    --5:参数化动态PIVOT行转列
    -- =============================================
    -- Author:        <听风吹雨>
    -- Create date: <2014.05.26>
    -- Description:    <参数化动态PIVOT行转列>
    -- Blog:        <http://www.cnblogs.com/gaizai/>
    -- =============================================
    DECLARE @sql_str NVARCHAR(MAX)
    DECLARE @sql_col NVARCHAR(MAX)
    DECLARE @tableName SYSNAME --行转列表
    DECLARE @groupColumn SYSNAME --分组字段
    DECLARE @row2column SYSNAME --行变列的字段
    DECLARE @row2columnValue SYSNAME --行变列值的字段
    SET @tableName = 'TestRows2Columns'
    SET @groupColumn = 'UserName'
    SET @row2column = 'Subject'
    SET @row2columnValue = 'Source'
    
    --从行数据中获取可能存在的列
    SET @sql_str = N'
    SELECT @sql_col_out = ISNULL(@sql_col_out + '','','''') + QUOTENAME(['+@row2column+']) 
        FROM ['+@tableName+'] GROUP BY ['+@row2column+']'
    --PRINT @sql_str
    EXEC sp_executesql @sql_str,N'@sql_col_out NVARCHAR(MAX) OUTPUT',@sql_col_out=@sql_col OUTPUT
    --PRINT @sql_col
    
    SET @sql_str = N'
    SELECT * FROM (
        SELECT ['+@groupColumn+'],['+@row2column+'],['+@row2columnValue+'] FROM ['+@tableName+']) p PIVOT 
        (SUM(['+@row2columnValue+']) FOR ['+@row2column+'] IN ( '+ @sql_col +') ) AS pvt 
    ORDER BY pvt.['+@groupColumn+']'
    --PRINT (@sql_str)
    EXEC (@sql_str)

    复制代码

    wps_clip_image-17757

    (图5)

    (七) 在实际的运用中,我经常遇到需要对基础表的数据进行筛选后再进行行转列,那么下面的脚本将满足你这个需求,效果如图6所示:

    复制代码

    --6:带条件查询的参数化动态PIVOT行转列
    -- =============================================
    -- Author:        <听风吹雨>
    -- Create date: <2014.05.26>
    -- Description:    <参数化动态PIVOT行转列,带条件查询的参数化动态PIVOT行转列>
    -- Blog:        <http://www.cnblogs.com/gaizai/>
    -- =============================================
    DECLARE @sql_str NVARCHAR(MAX)
    DECLARE @sql_col NVARCHAR(MAX)
    DECLARE @sql_where NVARCHAR(MAX)
    DECLARE @tableName SYSNAME --行转列表
    DECLARE @groupColumn SYSNAME --分组字段
    DECLARE @row2column SYSNAME --行变列的字段
    DECLARE @row2columnValue SYSNAME --行变列值的字段
    SET @tableName = 'TestRows2Columns'
    SET @groupColumn = 'UserName'
    SET @row2column = 'Subject'
    SET @row2columnValue = 'Source'
    SET @sql_where = 'WHERE UserName = ''王五'''
    
    --从行数据中获取可能存在的列
    SET @sql_str = N'
    SELECT @sql_col_out = ISNULL(@sql_col_out + '','','''') + QUOTENAME(['+@row2column+']) 
        FROM ['+@tableName+'] '+@sql_where+' GROUP BY ['+@row2column+']'
    --PRINT @sql_str
    EXEC sp_executesql @sql_str,N'@sql_col_out NVARCHAR(MAX) OUTPUT',@sql_col_out=@sql_col OUTPUT
    --PRINT @sql_col
    
    SET @sql_str = N'
    SELECT * FROM (
        SELECT ['+@groupColumn+'],['+@row2column+'],['+@row2columnValue+'] FROM ['+@tableName+']'+@sql_where+') p PIVOT 
        (SUM(['+@row2columnValue+']) FOR ['+@row2column+'] IN ( '+ @sql_col +') ) AS pvt 
    ORDER BY pvt.['+@groupColumn+']'
    --PRINT (@sql_str)
    EXEC (@sql_str)

    复制代码

    wps_clip_image-10798

    (图6)

    四.参考文献(References)

    使用 PIVOT 和 UNPIVOT

     

    转自:https://www.cnblogs.com/gaizai/p/3753296.html

    展开全文
  • 关于miniUI 记录列表列字段的隐藏方法1.列字段隐藏2.列字段显示 1.列字段隐藏 grid.hideColumn(“div的name值”); 2.列字段显示 grid.showColumn(“div的name值”);

    关于miniUI 记录列表列字段的隐藏方法

    1.列字段隐藏

    grid.hideColumn(“div的name值”);

    2.列字段显示

    grid.showColumn(“div的name值”);

    展开全文
  • mysql同表列字段复制

    千次阅读 2019-03-31 13:31:31
    mysql同表列字段复制 解决方法: 想把plant_product 表中的class3 字段复制到column_id字段中,实现如下sql语句: http://www.yayihouse.com/yayishuwu/chapter/1837

    mysql同表列字段复制

     

    解决方法:

    想把plant_product 表中的class3 字段复制到column_id字段中,实现如下sql语句:

    http://www.yayihouse.com/yayishuwu/chapter/1837

    展开全文
  • 需求:将一个表中的关系字段信息全都同步到同一张表的备注字段中 UPDATE t_case_contact_copy as a ,t_case_contact_copy as b ...将一个表中的某列字段同步到另一张表中也是同理,必须保证字段类型一致,长度一致。
  • Sql Server 数据库 表增加列字段

    万次阅读 2018-08-31 19:07:40
    在工作中有可能因为需要对数据库增加一列字段,DDL 语句 ALTER TABLE 表名 ADD 字段名 字段的类型名称(长度) ALTER TABLE TUser ADD shortName VARCHAR(10) 这个有更多的介绍...
  • 连接同一列字段: SELECT GROUP_CONCAT(字段) from table ; 连接同一行多个字段: SELECT CONCAT(字段1,字段2,自定义字符串,,,) from table;
  • 根据现有表创建新表: CREATE TABLE "test04" AS ( select * from testdemo); 修改数据表名: ...新增列字段: ALTER TABLE test04 ADD gid1_type integer; 删除列字段: ALTER...
  • select t.column_name from information_schema.columns t where t.table_name='table_name';//获取列字段
  • 解决 数据库mysql增加 字段很慢添加字段很慢环境如下:mysql5.6 数据仅仅3w alter table xxx add column yyy int default 0; 添加字段很慢,好几份中都没有好。。原因以及解决[SQL] alter table grejx_def add ...
  • Java 通过ResultSet获取列字段等信息

    千次阅读 2019-07-10 13:13:54
    Java 通过ResultSet获取列字段等信息 ResultSet rs = stmt.executeQuery(sql); ResultSetMetaData data = rs.getMetaData(); for (int i = 1; i <= data.getColumnCount(); i++) { // 获得所有列的数目及实际列...
  • ORACLE实现更改列字段类型为CLOB

    千次阅读 2019-09-25 11:39:25
    场景:更改表TBL_MER_BASE_INFO_R_EXPAND 中的QRCODE_DATA列字段类型为CLOB类型 SQL: alter TABLE TBL_MER_BASE_INFO_R_EXPAND ADD(temp_clob CLOB);//给表新增一个clob类型的列 update TBL_MER_BASE_INFO_R_...
  • 我想在日历左侧添加一列字段像这样![图片说明](https://img-ask.csdn.net/upload/201711/16/1510823064_759700.png),现在是这个样![图片说明](https://img-ask.csdn.net/upload/201711/16/1510823115_113629.png)
  • MySQL动态添删改列字段

    千次阅读 2014-01-03 18:34:03
    好吧,我承认是自己项目中重大的失误,在这个项目试运行期间,对数据库字段的长度以及字段的值进行修改了两次,为了不影响里边已经存在的数据,那么我只能是再次寻找一种方法去动态增删改列字段
  • &lt;resultMap id="***ResultMap" type="GroupDO"&gt; &lt;id column="source_id" jdbcType="BIGINT" property="sourceId"... ofTyp
  • 1.用is null 和 is not null来判断字段是否为空。 2.用len()函数来判断字段长度。 转载于:https://www.cnblogs.com/Arlar/p/6025930.html
  • 最近在项目中遇到个问题,需要将表中某列字段合并成字符串输出,如果直接通过代码全部读取出来,再遍历进行拼接显然不是最好的方法,所以想着能否在数据读取的时候直接拼接好返回,网上搜了可通过for xml来实现。...
  • mysql 中group by 和select 列字段数不同 首先,这个是MySQL对标准sql的扩展 这在mysql 中是合法的。在ORACLE中会报错。 这是mysql的设计,当group by 字段和select 多字段是唯一的一个分组时,这样能提高效率...
  • birt交叉报表的列字段排序

    千次阅读 2014-02-27 16:04:12
    birt报表中的数据都是来自于你所配的数据源。 然后具体可以在数据集中写具体的sql语句比如:select user_name(注:名称),week(周时段),.......(其他字段) from table order by week_no...结果所查出来的列字段
  • pgsql 多行多列字段拼接

    千次阅读 2020-03-16 16:09:58
    1. 一条记录数据字段拼接 语法:concat_ws('拼接符号',字段名,more fields) 例子:concat_ws(':',username,sex) 2. 多条记录字段拼接 语法:concat_ws(字段名,'拼接符号') 例子:string_agg(ccc,' \r\n ') 3. ...
  • ExtJs4.2应用:根据自定义格式显示列字段信息 data:dataIndex的值,就是status的值 cell:单元格的相关属性 record:这行的数据对象。通过record.get('XXXX')方式得到XXXX列的值 rowIndex:行号(从0开始计数) ...
  • 加入CSDN有段时间了,一直没有在博客上写点什么,今天弱弱地写一点...下面就以winform中Datagridview按照某排序。虽然简单,希望大家不要拍砖,毕竟也是知识,呵呵。这种方法不需要自己去写排序的代码,只需在绑定
  • oracle修改表某列字段长度

    万次阅读 2019-01-02 10:23:24
    1.修改一个 alter table 表名 modify name varchar2(60); 2.修改多个 alter table 表名 modify (name varchar(60),name1 varchar2(60));  
  • EasyUI获取列字段field

    千次阅读 2017-03-31 17:34:18
    1.通过属性获得(单元格格式化函数formatter、单元格样式styler、) function Compare_CellStyler(value,row,index){ //添加单元格样式 var str=this.field; }
  • sql 修改某列字段为非空 not null

    万次阅读 2018-11-04 14:16:13
    修改数据库表的已存在的某列为非空属性   alter table table_name modify column_name not null; 例如: ...修改字段为not null,还要把原来的类型也写出来 ALTER TABLE jw_user_role MODIFY ...
  • Linux根据某列字段去重

    千次阅读 2019-06-11 14:04:45
    -t : 指定分隔符 -k: 指定从第几列开始去重 sort -t $',' -k3,3 -u file1.txt >> file_new.txt
  • sql动态添加列字段

    千次阅读 2014-01-06 15:22:34
    if exists(select * from syscolumns where id=object_id('bairong_Users') and name='JxsShow'...--alter table bairong_Users drop column Token --删除字段 print '已存在' end else begin alter table bairong_U...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,607
精华内容 18,242
关键字:

列字段