‘壹’ sql语句,查询一条不存在的记录
select rownum FROM DUAL CONNECT BY ROWNUM <= 600
minus
select id from m
;
‘贰’ sql中 关于取表中不存在的值的写法
真服了你,还用日文,这个看了有点不爽。本来不想回答,想想还是算了:
Create table 另一张表名称 Select * From 表2 where 年月日 not in (select 年月日 from HolidayMaster)
---------------------------------------------
看了你的提示,感觉你的提问方式不是很好理解。
HolidayMaster是存放休息日,那么工作日不就是除休息日以外的日子嘛!那么你想建一张新表,存放工作日(workday),这张新表的字段有几个?分别是什么等都没说明白。网络知道这个平台,问题表达的越清楚,就越可能得到最想要的答案。我就写一个最简单的,你不理解,我也没办法了:
第一步:生成一个一年365天的临时表
1.按照HolidayMaster结构生成一张空表
select * into AllDay from HolidayMaster where 1<>1
2.向空表插入一年的数据
declare @i int
set @i=1
while @i<365
begin
insert into AllDay (yyyymmdd) values(DateAdd(day,@i,getdate()))
set @i=@i+1
end
3.完成你想要的答案:
Select Right(convert(char(10),yyyymmdd,121),5) as mmdd into NewTable from AllDay Where Right(convert(char(10),yyyymmdd,121),5) not in
(Select Right(convert(char(10),yyyymmdd,121),5) From HolidayMaster)
说明:Right(convert(char(10),yyyymmdd,121),5) as mmdd 是取年月日中的右五位,即月日,作为列名mmdd。所以NewTable只有一列(mmdd),表示工作日。
实现功能总结:
例如:HolidayMaster有两条记录 2010-04-05 和 2010-04-06(这里年无关紧要,因为通过说明会去除)
那么NewTable就是一年365天中去除这两天的所有天。
‘叁’ sql里判断表存在不存在的语句
使用exists判断。
以Oracle为示例:
exists(select 1 from all_tables u where 条件一:限制用户名 and 条件二:限制表名)
查询系统字典表all_tables,判断表是否存在,存在则结果为真;不存在则结果为假
通过结合if语句使用:
if exists(select 1 from all_tables u where 条件一:限制用户名 and 条件二:限制表名) then 执行子句一
else 执行子句二;
‘肆’ SQL创建了标量函数但显示不存在,如何解决
使用修改部分打开的自定义函数,说明函数创建成功。
至于加红色的波浪线,可以不用理会,工具显示的问题,不是错误。
关闭后再打开就好了,就当做微软工具的小小bug啦
‘伍’ sql语句如果数据不存在就插入存在就不插入
如果你插入的数据在数据库中已经存在,数据库会根据实体完整性拒绝你插入相同的数据
‘陆’ SQL查询不存在的值
select A表.字段1,A表.字段2
from A表 left join B表
on A表.字段1 = B表.字段1
where B表.字段1 is null
‘柒’ sql 提示函数 len不存在
SELECT len('a')就行了吧?
后面的是干啥的?
SELECT len('a') FROM car WHERE 1=1
‘捌’ SQL语句:怎样显示表里不存在的数据
你做一个临时表,把这些号码先插到临时表里面,然后在写sql,比如临时表为BBB,插入字段为ID:
select b.ID from BBB b where 1=1 and not exists(select 1 from AAA a where a.ID=b.ID)
‘玖’ mysql 用sql判断表里是否存在某个字段,不存在加入新字段
IFNOTEXISTS(SELECT1FROMCOLUMNSWHERETABLE_SCHEMA='test'ANDtable_name='A'ANDCOLUMN_NAME='c1')THEN
ALTERTABLEAADDc1VARCHAR(1)NOTNULL;
ENDIF;
‘拾’ 如何用SQL语句查询后,返回不存在的值,并用一个字符代替
假如张三这个人不存在,在sqlserver里就这么执行
select case when 工资 is null then 0 end from 表 where 员工姓名='张三'
上边这个有问题,刚才改了一下,上边这个问题是,如果不存在这个员工,那么选定行就是0,所以还是得不出结果
试验下边这个
select sum(a.工资) from
(select 0 as 工资 union all
select 工资 from 表 where 员工姓名='张三') a;