PIVOT的使用: 行转列
IIF()的使用:IIF( boolean_expression, true_value, false_value)
多个字段使用MX()函数
SELECTD.ID,字段1,字段2,字段3,字段4,字段5,X.MinDateValue
FROM 表名 D WITH(NOLOCK)
OUTER APPLY (SELECT MIN(DateValue) AS MinDateValueFROM (VALUES (字段1),(字段2),(字段3),(字段4),(字段5)) AS V(DateValue)
) X;
这个子查询的作用是:
使用 VALUES 子句将 D 表中的五个日期字段作为行插入到一个虚拟表 V 中,字段名为 DateValue。
然后从这个虚拟表中选择 DateValue 的最小值,并将其命名为 MinStartDate。
虚拟表中对应源表中有5条 是多对一的关系衍生出了5条数据
STUFF (character_expression , start , length , replace_with_expression )
将字符串中的某一部分用另一字符串替换掉
FOR XML PATH
,
其实它就是将查询结果集以XML形式展现,将多行的结果,展示在同一行。