关于sqlserver 2005的sql的语句写法问题
发布网友
发布时间:2022-04-14 22:01
我来回答
共4个回答
热心网友
时间:2022-04-14 23:30
这种输出外观最好是交由应用程端用编程的方法或报表工具来解决,因为SQL属于解释性语言,在数据库端处理这类问题往往吃力不讨好。
如果偶尔为之楼主可以考虑使用SQLSERVER2005推出的ROW_NUMBER函数,不建议运行于频繁操作的生产环节。
现尝试编写SQL代码如下:
select case t.n when 1 then t.code else null end code,
case t.n when 1 then t.name else null end name,
t.proctname,t.quantity from
(select *, ROW_NUMBER() OVER(PARTITION BY code,name
ORDER BY name asc) n from tblname)t;
注:由于我手头上没有SQL2005环境,上述代码未经测试不排除有错漏,如运行有问题请发追问,也可自行修正。原理就是用code和name分组,借ROW_NUMBER函数为每个组的记录按序排号,小组排第一的显示code和name其它行不显示这两个字段。
热心网友
时间:2022-04-15 00:48
oracle pl/sql 有这个功能,sql server 暂没发现
热心网友
时间:2022-04-15 02:23
游标或在程序端处理
热心网友
时间:2022-04-15 04:14
如果你的code为主键的话,那肯定不能为空