置顶:关于SQL语句学习的资源网站(2019年8月12日)

techonthenet

11.在Select中加上条件语句(2019年9月1日)

注意:中文字段名与值都不要太长,最长10个中文。首字母是数字的,要在字段名前后加上"",两个英文双引号。

--以下为在塔谱中的数据表名称

--CO_0111动态单方成本

SELECT

count(*) AS "017表记录总数",

CASE WHEN COUNT(*)<30000

THEN '记录数异常'

ELSE '记录数正常'

END AS 记录数异常状态

FROM CO_0111

10.判断字段值为Null或为空(2019年8月21日)

WHERE (NOT (dbo.资格认证报名_明细.不参考原因 IS NULL)) AND (LEN(dbo.资格认证报名_明细.不参考原因) > 1)

里面有一个空白,也不是NULL,用长度查一下。

9.改变字段的显示顺序(2019年8月21日)

这是设计阶段确定的,视图做到,除非你在设计模式下进行调整。

视图的顺序并不是显示的顺序。




SQL server查询的值除以一万 sql server取余数_sqlserver 取最大值


https://stackoverflow.com/questions/15781151/how-to-change-the-column-order-of-an-existing-table-in-sql-server-2008

8.位置字符函数(2019年8月18日)

LEFT(dbo.R3报表角色表_交叉表.是否生效, 1) LIKE '是'

在Tableau行级别权限控制中,要用到是否生效这个值,是(J)或是(S),用位置函数就方便找出“是”这个字符了。

同大多数程序一样。

7.将两个字段的值并起来,形成新的字段(2019年8月17日)

str([TASK_1]) + str([T1_HOURS])+'hr'

6.关联后一个字段是否包括另外一个字段(2019年8月16日新发)

dbo.人员档案管理_明细.角色代号 LIKE '%' + dbo.R3报表角色表_交叉表.角色编码 + '%'

上述语句不考虑大小写。


SQL server查询的值除以一万 sql server取余数_sql server取余数_02


5.主表条件取值TOP1再关联右边(2019年8月11日)

--只能一个用星号,另外一个要逐个标出来,有些麻烦,估计是不能有相同的字段原因,在SQL Server中没有这个问题

SELECT MX.*,ZB.版本号 AS 主表版本号,ZB.填报人 AS 主表填报人,ZB.填报时间 AS 主表填报时间 ,ZB.版本说明 AS 主表版本说明

--主表是选择状态是锁定的范围内数据,再按版本号排序,取第一个值,这个是我想要的

FROM (SELECT TOP 1 * FROM 业态_主表 where 锁定状态='已锁定' ORDER BY 版本号 desc) ZB LEFT JOIN 业态_明细 MX

--关联字段

on ZB.ExcelServerRCID=MX.ExcelServerRCID

4.将两个表关联(2019年8月11日)

SELECT MX.*,ZB.版本号

on ZB.ExcelServerRCID=MX.ExcelServerRCID

问题是:无法将第二个表用*来全部显示,我用的是2019.2.1

无法的原因是在Tableau中不允许有两个相同的字段,因为要关联,必定是要有相同字段的。

3.链接SQL Server时直接用语句联方便(2019年8月11日)

  • SELECT top 1 * FROM 业态_主表 order by 版本号 desc
  • 这样联接后可以利用丰富的SQL Server语句,不然都要在Tableau中,会比较麻烦。
  • 数据源名称可以自由编辑,不然你是不能改的。
  • 你可以在语句中添加注释,你会非常方便

--这是注释的方,如果放数据源的名称,来源及作用等。

2.找出版本号最高的那条记录(2019年8月11日)

  • 方法一:SELECT top 1 * FROM 业态_主表 order by 版本号 desc
  • 方法二:select * from 业态_主表 where 业态_主表.版本号 =(select max(版本号) from 业态_主表) 此办法一个同行建议的,我测试是可行的。至于上述办法哪个更有效率,还有待主讨论。


SQL server查询的值除以一万 sql server取余数_sql server取余数_03


  • 如果不用此办法,可以在Tableau中用自定义最大值,直接过滤也行,但那样效率会很低,不如在SQL Server中这样写方便

1.字段名的几个限制,否则会出错(2019年8月25日更新)

FIELDNAME AS NEW FIELDNAME时,在新的字段名中如果有如下情形,将出错。

1有括号APP_DATE AS 签订日期(原) SQL 语句出错;

2有空格

3有 OR /OR中英文括号()、()

4不能超过10个中文字符