练习列转行

if not object_id('Class') is null  
    drop table Class  
Go  
Create table Class([Student] nvarchar(2),[Course] nvarchar(2),[Score] int)  
Insert Class  
select N'张三',N'语文',78 union all  
select N'张三',N'数学',87 union all  
select N'张三',N'英语',82 union all  
select N'张三',N'物理',90 union all  
select N'李四',N'语文',65 union all  
select N'李四',N'数学',77 union all  
select N'李四',N'英语',65 union all  
select N'李四',N'物理',85   
Go  

select * from class


---静态
select 
     student,
[语文]=max(case when course ='语文' then [score] else 0 end),
[数学]=max(case when course ='数学' then [score] else 0 end),
[英语]=max(case when course ='英语' then [score] else 0 end),
[物理]=max(case when course ='物理' then [score] else 0 end),
[总成绩]=sum([Score])
  from class 
group by student

---动态
declare @s nvarchar(4000)  
set @s=''  
Select  @s=@s+','+quotename([Course])+'=max(case when [Course]='+quotename([Course],'''')+' then [Score] else 0 end)'  
from Class group by[Course]  
exec('select [Student]'+@s+',[总成绩]=sum([Score]) from Class group by [Student]')  



---静态
select  course ,  
       [张三]=max( case when student='张三' then [score] else 0 end),
       [李四]=max( case when student='李四' then [score] else 0 end),
       [科目平均分]=avg([score])
from class 
group by course


---动态
declare @s nvarchar(4000)
set @s=''
select @s=@s+','+quotename([student])+'=max(case when [student]='+quotename([student],'''')+' then [score] else 0 end)'
from class group by [student]
exec ('select course'+@s+',[科目平均分]=avg(score) from class group by [course]'  )



------------------------------------------------------------------------------------

上面涉及到quotename

  quotename函数有几种写法: 
  quotename('aa') 生成的有效的标识符为 [aa] 
  quotename('aa','') 生成的有效的标识符为 [aa] 
  quotename('aa','''') 生成的有效的标识符为 'aa'

 




<think>好的,我需要帮助用户了解从建筑设计转行到IT领域的方法和建议。首先,用户已经提到了引用内容,其中提到建筑师转行IT的可能性,特别是学习Python。我需要结合这些引用,同时补充更多具体的信息。首先,我应该分析建筑师的现有技能如何转移到IT行业。比如,建筑设计中的项目管理和协作能力、使用数字工具的经验,这些在IT项目中同样重要。然后,需要确定转行的主要方向,比如前端开发、后端开发、数据分析或UI/UX设计,这些领域可能更适合有设计背景的人。 接下来,用户需要具体的学习路径。根据引用3,Python是一个不错的起点,因为它适合入门且应用广泛。我应该建议学习Python的基础,然后根据兴趣选择方向,比如Web开发学习Django,数据分析学习Pandas等。同时,需要推荐实践方法,比如做项目或参加开源,以及求职策略,比如准备作品集和利用建筑行业的经验。还要考虑可能的挑战,比如技术学习的曲线,以及如何突出建筑背景的优势。例如,在UI/UX设计中,设计经验会很有帮助。此外,转行步骤需要分阶段,从技能评估到学习、实践、求职,逐步推进。最后,生成相关问题,帮助用户深入思考其他方面,比如成功案例、时间规划、认证选择等。确保回答结构清晰,分点出,并正确使用LaTeX格式,如变量用$...$,独立公式用$$...$$,但可能在这个回答中公式较少,需注意检查。</think>### 建筑设计转行IT的方法与建议 #### 一、可行性分析 1. **技能迁移性** 建筑设计师的**空间思维**、**项目管理能力**和**跨学科协作经验**与IT行业需求高度契合。例如: - 使用CAD/BIM工具的经验可迁移至编程中的**逻辑建模**能力[^1] - 设计规范遵循意识对应软件开发中的**代码规范**要求 - 建筑方案迭代流程与**敏捷开发**方法论有相似性 2. **市场需求** IT行业中以下方向对建筑背景转行者更友好: - 前端开发(视觉呈现与交互设计) - 三维建模/游戏开发(空间可视化能力) - 智慧城市系统设计(建筑+技术的复合需求) - UI/UX设计(用户场景分析能力) #### 二、核心学习路径 $$学习阶段 = 基础编程 \rightarrow 专业方向 \rightarrow 实践项目$$ 1. **编程基础**(建议3-6个月) - Python入门:从自动化办公场景切入(如批量处理CAD文件)[^3] - JavaScript基础:`if/else`逻辑、DOM操作等 - 数据结构与算法:重点掌握$O(n)$复杂度分析 2. **方向选择**(示例) | 方向 | 关键技术栈 | 建筑经验赋能点 | |-------------|---------------------|-----------------------| | 前端开发 | React + Three.js | 空间可视化能力 | | 智慧城市 | GIS + IoT | 建筑系统集成经验 | | BIM开发 | Revit API + Python | BIM工具深度理解 | 3. **实践方法论** - 将建筑作品集转化为**代码作品集**:例如用WebGL实现建筑模型交互展示 - 参与开源项目:从建筑相关插件开发入手(如AutoCAD插件) - 开发实用工具:例如基于$Dijkstra$算法的建筑流线优化工具 #### 三、转行实施步骤 1. **技能评估** 建立技能映射矩阵: $$匹配度= \frac{\sum(可迁移技能)}{IT岗位要求技能总量} \times 100\%$$ 2. **学习资源** - 建筑转IT专属课程(如Coursera的《BIM Programming》) - 参加Hackathon活动积累项目经验 - 通过LeetCode练习算法题(建议每日1题) 3. **求职策略** - 重点投递**建筑科技类公司**(如Autodesk、广联达) - 在简历中突出**跨领域解决方案能力** - 准备技术面试时结合建筑案例(如用递归算法解释空间分割逻辑) #### 四、风险控制 1. **时间成本** 建议采用**并行过渡策略**: ``` while 在职: 每天投入2小时学习 if 完成里程碑项目: 申请IT相关兼职 ``` 2. **竞争力打造** 构建复合型知识体系: $$竞争力指数= \alpha \cdot IT技能 + \beta \cdot 建筑经验\quad (\alpha+\beta=1)$$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值