SQLSERVER两种拼接

月似人伤 2017-11-08 03:34:26
SELECT
packageID,
STUFF(
(
SELECT
',' + name
FROM
--BEGIN
(
SELECT
PACKAGEITEM.packageID,
PRODUCT.name,
PRODUCT.productid
FROM
T_NTP_SAILINFO_PACKAGE_ITEMS AS PACKAGEITEM
LEFT JOIN T_NTP_BASE_PRODUCT AS PRODUCT ON PRODUCT.productid = PACKAGEITEM.productID AND PRODUCT.DelFlag = 'N'
WHERE PACKAGEITEM.DelFlag='N'
) a
--END
WHERE
packageID = associated.packageID
FOR XML PATH ('')

),1,1,'') AS productNames
FROM
--BEGIN
(
SELECT
PACKAGEITEM.packageID,
PRODUCT.name,
PRODUCT.productid
FROM
T_NTP_SAILINFO_PACKAGE_ITEMS AS PACKAGEITEM
LEFT JOIN T_NTP_BASE_PRODUCT AS PRODUCT ON PRODUCT.productid = PACKAGEITEM.productID AND PRODUCT.DelFlag = 'N'
WHERE PACKAGEITEM.DelFlag='N'
)
--END
AS associated
GROUP BY
packageID


------------------------------2
WITH tab AS(
SELECT
'张三' AS name,
'语文' AS kemu,
81 AS fenshu
UNION
SELECT
'张三' AS name,
'数学' AS kemu,
72 AS fenshu
union
SELECT
'李四' AS name,
'语文' AS kemu,
76 AS fenshu
UNION
SELECT
'李四' AS name,
'数学' AS kemu,
90 AS fenshu
union
SELECT
'王五' AS name,
'语文' AS kemu,
81 AS fenshu
UNION
SELECT
'王五' AS name,
'数学' AS kemu,
100 AS fenshu
)



-- SELECT tab.*,temp.fenshu FROM tab
-- LEFT JOIN (
-- select name,sum(fenshu)/2 as fenshu from tab
-- GROUP BY name
-- ) temp ON tab.name= temp.name
-- where tab.fenshu < temp.fenshu
--
--
-- SELECT tab.*,
-- (
-- CASE
-- WHEN tab.fenshu <80
-- then '合格'
-- WHEN tab.fenshu >=80 and tab.fenshu <90
-- then '中等'
-- WHEN tab.fenshu >=90
-- then '优秀'
-- ELSE ''
-- END
-- )
-- FROM tab
--
--
SELECT
name as 姓名,
MAX(
CASE
WHEN kemu='语文' THEN
fenshu
END
) AS 语文,
MAX(
CASE
WHEN kemu='数学' THEN
fenshu
END
) AS 数学

FROM
tab
GROUP BY name
...全文
211 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧