目录

作者: admin

Oracle 行转列的两种方法

方法 1,使用 PIVOT 函数

表数据
WITH temp AS(
SELECT '四川省' nation ,'成都市' city,'第一' ranking FROM dual UNION ALL
SELECT '四川省' nation ,'绵阳市' city,'第二' ranking FROM dual UNION ALL
SELECT '四川省' nation ,'德阳市' city,'第三' ranking FROM dual UNION ALL
SELECT '四川省' nation ,'宜宾市' city,'第四' ranking FROM dual UNION ALL
SELECT '湖北省' nation ,'武汉市' city,'第一' ranking FROM dual UNION ALL
SELECT '湖北省' nation ,'宜昌市' city,'第二' ranking FROM dual UNION ALL
SELECT '湖北省' nation ,'襄阳市' city,'第三' ranking FROM dual
)
SELECT * FROM (SELECT nation,city,ranking FROM temp)PIVOT (MAX(city) FOR ranking IN ('第一' AS 第一,'第二' AS 第二,'第三' AS 第三,'第四' AS 第四));

直接运行以上代码即可实现以下效果:

查询结果

说明:(聚合函数 FOR 列名 IN(类型)),其中 IN(‘’) 中可以指定别名,IN 中还可以指定子查询,比如 SELECT distinct ranking FROM temp

SELECT * FROM [StudentScores] /*数据源*/
AS P
PIVOT 
(
    SUM(Score/*行转列后 列的值*/) FOR 
    p.Subject/*需要行转列的列*/ IN ([语文],[数学],[英语],[生物]/*列的值*/)
) AS T

方法 2,使用 MAX 结合DECODE 函数

表数据
WITH temp AS(
SELECT '四川省' nation ,'成都市' city,'第一' ranking FROM dual UNION ALL
SELECT '四川省' nation ,'绵阳市' city,'第二' ranking FROM dual UNION ALL
SELECT '四川省' nation ,'德阳市' city,'第三' ranking FROM dual UNION ALL
SELECT '四川省' nation ,'宜宾市' city,'第四' ranking FROM dual UNION ALL
SELECT '湖北省' nation ,'武汉市' city,'第一' ranking FROM dual UNION ALL
SELECT '湖北省' nation ,'宜昌市' city,'第二' ranking FROM dual UNION ALL
SELECT '湖北省' nation ,'襄阳市' city,'第三' ranking FROM dual
)

SELECT nation,
MAX(DECODE(ranking, '第一', city, '')) AS 第一,
MAX(DECODE(ranking, '第二', city, '')) AS 第二,
MAX(DECODE(ranking, '第三', city, '')) AS 第三,
MAX(DECODE(ranking, '第四', city, '')) AS 第四
FROM temp GROUP BY nation;

运行以上代码,显示结果如下:

运行结果

说明:DECODE 的用法:DECODE (条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值),该函数的含义如下:

IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

Mac 如何查看已安装的应用来源

在 Mac 中,如何查看已经安装的软件当初是在哪里安装的呢?是在第三方 还是 App Store 中下载的?

操作步骤如下:

关于本机
系统报告
查看应用程序信息清单

在左侧中选择“应用程序” (此处首次加载比较慢,大约要等待 1 分钟左右),在程序信息中显示的“购买自”信息栏,如果来自 Apple 或者 Apple Store 则表示苹果自带的或商店下载。 其他均为来自第三方下载

Macbook Pro 官网直营店维修记

平常买电子产品都算的上相对谨慎,尽可能的会选择质量及性能比较好产品,价格也许相对其他同参数竞品稍贵,带来的品质和使用感受还是有所感受的。

工作环境

大概 3-4 个月之前,MacBook 的触摸板下半部分按压失灵,无法按下。由于一直都外接的键盘使用,一直也没管它。

维修单。

趁着国庆假期稍闲,就拿去了成都的 Apple 直营店(万象城),简单的口述下问题,填下个人信息,电脑交给对方走人即可,经过 2 天收到邮件说修好了,看了下,竟然修了 2,850 元,不过保修期内,免费!嘿!真不错。主要更换了全新的触摸板、键盘、电池。 真是舍得… 坏个触摸板,换了三块儿硬件。 并且这三块硬件的保修期从新开始计时 2 年质保。

GTD 时间管理学习总结

参考资料(推荐):bilibili 视频《GTD 自我管理、时间管理教程【全 10 集】

以上两种,都可以使用 GTD

目的 (1) 清空大脑

当大脑中同时拥有多种事情需要处理时,它并不能快速的区分出哪一些事情是优先的,哪一些事情是重要的,哪一些是不重要的,依次排序有序安排。大脑始终处于反复提醒自己有哪些事情正在进行,哪些事情不断的再排序。

如果通过外界的其他方式来处理,则显得更为清晰,合理,不必一直在脑中反复记忆这些需要处理的事情清单,比如纸质记事本、电脑 Word 、备忘录类 App 、 其他应用等,总结为好记性不如烂笔头。

从另外一方面讲,过于混乱的待办事项,会让你的大脑陷入失控感,你会觉得自己不能够把控这些事情,随之而来的就是焦虑、拖延、感觉压力山大。而利用外界的其他处理方式(如上所述),可解决这一问题,让大脑中的所有待办事项进行清空,将它们转移到纸质或电子文档、App上。并整理出更合理、更科学的排序、具体执行计划。即可清晰可循,从而达到清空大脑的目的,伴随而来的即可极大解决焦虑、拖延、压力山大的感觉,从而提升办事效率与幸福感。

目的 (2) 明确知道下一步该做什么

如何将每一项大大小小的待办事项进行合理的规划,让自己随时清晰的知道什么时间应该做什么?这需要用到 GTD 的理论,5 个流程来实现,分别为:

  1. 捕获(Capture)
  2. 明晰(Clarify)
  3. 组织(Organize)
  4. 回顾(Reflect)
  5. 执行(Engage)

什么时候 捕获(Capture)

任何大于2分钟的事情都可以将它放到任务清单中,它可以是灵光乍现需要到淘一本书,或是接到领导的一个任务,亦是预约了时间外出办事,再可能是突然兴趣想学习 Python 编程,所有的一切出现在脑海时,直接将其放入待办事项清单中。

什么时候 明晰(Clarify)、组织 (Organize)、回顾(Reflect)、执行(Engage)

(1)查看任务清单:首先查看任务清单所有的事项是否已经罗列清晰,逐一查看每一项是否可在 2 分钟内完成,如果可以,直接列入可执行清单 或 直接完成即可 不必列入。

(2)明晰、组织:有具体日期的,标记相应的日期,可使用日历类软件进行相应的时间、事件标注提醒。没有具体日期的进行 5 个问题进行相应归类,如下图所示。

GTD 事项分析 5 个问题

通过以上 5 个问题进行相应的待办事项归类,事项较大则需要进行更具体的事项拆分,比如“学习 Python 编程”,则可拆分为 ① 学习计划, ② 学习资料收集 (如买书、寻找相应的教材、教程、视频等)。 当完成以上 2 项,要继续学习自然可以根据自己的时间以及学习进度进行相应的任务计划项进行分配,逐一完成。

(3)执行:通过以上的明晰、组织、回顾、已经将事项罗列的清晰有序,逐一执行即可。

(4)回顾:区分为每日回顾、每周回顾,复查当天的清单是否有遗漏且有必要性立即补齐或安排到第二天,或另行其他安排。

学习 GTD

本文仅为个人学习总结,有兴趣学 GTD 的,强烈推荐该视频 点击进入

解决 ORACLE 修改表字段NUMBER精度报错

错误:column to be modified must be empty to decrease precision or scale

出现这样的错误,是由于 ORACLE 数据引擎不允许存在拥有数据的情况下,进行精度修改。于是可以按照以下方法进行解决

解决方案

步骤 1 :备份原来的表

CREATE TABLE MY_BAK AS SELECT * FROM YOUR_TABLE;

步骤 2 :删除原来的表数据

DELETE FROM YOUR_TABLE;

步骤 3:

手动进行相应的字段精度修改,比如 Navicat / PL SQL 工具。

步骤 4:恢复数据

INSERT INTO YOUR_TABLE SELECT * FROM MY_BAK;

以上操作即可完美修改 Number 的精度,并且保留现有的数据。

解决 SQL Server CE 连接很慢的问题

症状

数据库 SQL Server Compact Edition 在没有互联网网络的电脑中,代码运行至 connection.Open() 时,需要等待时间超过 15s,甚至更久。

如何检查

通常这个时间是在等待某个请求 timeout ,我们使用了 Fiddler 工具,检测到程序在请求 crl.microsoft.com 的请求,发现是由于检查证书引起的。

修复问题

在计算机的组策略中进行相应设置,即可解决以上问题。

计算机组策略

在 Windows 运行中使用命令 gpedit.msc 打开组策略,设置路径:计算机配置 –> Windows 设置 –> 安全设置 –> 公钥策略 –> 右侧窗口中打开 证书路径验证设置 , 然后选择 网络检索 选项卡,进行如上图设置即可。

以上即可解决问题

自荐一个“在线图片转文字”的工具

目前网上的各项图像转文字的功能,基本归为转换效果差、注册登录、付费转换、需要下载App的各种情况。琢磨了下,还是自己写了一个(基于百度Api接口来的)。

在线图片转文字

地址:https://txt.wxzzz.com

有兴趣的可以试试,该链接长期有效。

如何优化 WordPress 工作总结

背景简述

  • 目标优化站点:https://itons.cn
  • 服务器配置:2核心2.5 GHz、8GB RAM、50GB HDD、6Mbps
  • 操作系统:Aliyun Linux 2.1903 LTS 64位(它类似CentOS且兼容)
  • 使用程序:WordPress(Avada商业版付费主题)

原生程序几乎每个页面加载都需要 2.5s – 5s 时间才能完成单页面加载完成,算上 JS、CSS 程序几乎需要用到 4s – 7s 时间才能完全加载完整页面。

WordPress 及 Avada 都是老牌程序了,自然也会考虑到这些点。最终采用了一些手段来优化最终完成单页面加载 145ms 左右,整页完全加载 850ms 左右。

如何优化

1、Google 字体加载优化

首先通过 Avada 后台自带的配置信息,配置了相关字体文件为本地加载。这里我使用插件 Useso take over Google 来完成 Google 字体加载慢或无法加载的问题,该插件不需要配置,直接安装即可生效。有了这个插件之后我们的 Avada 字体的配置就可以选择为 CDN 选项,让它自动去其他站点去获取字体。

Avada 字体设置示例图
2、关闭主题没必要的功能

主题通常有一些功能设置、配置,我这里使用的是 Avada 主题我会关闭掉我没有使用的一些功能,如下图所示:

关闭 Avada 没有用处的功能

即便如此,性能也只从3.5s 提升到 3.4s 不到的一个水平,我们接着往下继续优化。

3、合并 JS、CSS 进行加载

如果是自己写的JS、CSS还好说,使用别人的程序好处在于快速上线,缺陷对技术人员而言比如这类问题并不敢轻易的删除一些疑是无用的JS、CSS文件及代码。我们这里选择将大量的CSS、JS文件进行合并加载,推荐插件:Autoptimize ,它使用起来非常简单,勾选几个所需的合并即可。我的配置如下:

Autoptimize JS 选项设置
Autoptimize CSS 选项设置
Autotimize HTML 选项设置

其他选项我采用了默认的,并没有过多去配置它们。

4、使用缓存插件

即便是应用了以上的优化手段,按照我目前的服务器配置速度依然是很慢(3.2s-4.5s)左右的单页加载。经过测试与服务器运行状态观察,我首页的数据量为21kb,加载慢的原因在于CPU压力过大。这套 Avada 主题非常强大、应用范围可以是从博客、企业站、商城、论坛,各种配套插件、功能块构成。强大的功能也意味着更多的服务器资源开销,我选择使用缓存插件来解决该问题(更好的CPU也可以加快页面的加载性能)。

缓存插件我这里选择 WordPress 自家出品的插件:WP Super Cache , 功能简单易用且稳定可靠。我的配置如下:

WP Super Cache 通用设置

这里我选择“启用缓存功能(推荐)” ,点击【更新】按钮即可。

WP Super Cache 高级设置

在高级设置中,我设置如上图所示,别忘了在页面下方点击【更新】按钮进行保存,并继续如下图继续设置:

WP Super Cache 高级设置

将缓存时间超时设置为 0 秒,表示不会让垃圾回收机制进行缓存回收,让缓存一直在。

WP Super Cache 预缓存

这里我依然填写了 0 分钟刷新缓存文件,即表示不刷新。在保存设置后,可以点击按钮【立即预加载缓存】即可生成所有页面的缓存文件。

5、完成

完成以上步骤后,我的 WordPress 站点已经可以达到单页 140ms 加载,整页 850ms 加载完成的水平。我后期将会使用整站的静态资源(CSS、JS、图片、文件等)采用 CDN 加速进行进一步的速度优化。

关于优化,扩展阅读