SQLServer去重和判断是否为数字——OBJECT_ID的使用

更新时间:2023-07-10 02:48:59 阅读: 评论:0

SQLServer去重和判断是否为数字——OBJECT_ID的使⽤
sql 语句查询时去掉重复项:
使⽤ distinct 去掉重复项:
⾸先可以明确的看到存在重复的名字,那么接下来就让我们试试使⽤ distinct 去重吧。
1lect distinct*from Student
咦,怎么没效果呢?原来,distinct 是根据所查询的字段去重的。* 表⽰所有的字段,可以明确的看到字段 S_Id 和 S_StuNo 是不可能有重复的,因为⼀个为主键和⾃增长的标识列,⼀个有 unique (唯⼀)的约束。
既然明⽩了这⼀点,那下⾯就根据 S_Name,S_Sex,S_Height 这三个字段去重吧:
1lect distinct S_Name,S_Sex,S_Height from Student
sql判断字符串是否为数字:
⽅法⼀:使⽤sql rver的内置函数 ISNUMERIC():
1lect ISNUMERIC('123')        -- 返回 1
学拉丁舞最佳年龄2lect ISNUMERIC('123.12')    -- 返回 1
3lect ISNUMERIC('a123.12')    -- 返回 0
4lect ISNUMERIC('abc')        -- 返回 0
函数 ISNUMERIC() 返回结果为 1 表⽰全是数字,结果为 0 表⽰有除了数字的其他字符,但是“.”(⼩数点也会被当做其中⼀部分)。
⽅法⼆:匹配字符串中是否存在除了数字之外的其他字符(⼩数点也算作其他字符)
1if(('123'not like'%[^0-9]%'))    -- 数字
2begin
3lect'数字'
4end
5el
6begin
7lect'⾮数字'
8end
9
青蛙妈妈10if(('a123'not like'%[^0-9]%'))    -- ⾮数字
11begin
12lect'数字'
13end
14el
15begin
16lect'⾮数字'
17end
18
19if(('123.1'not like'%[^0-9]%'))    -- ⾮数字
20begin泉城济南
21lect'数字'
22end
烧毛机
23el
24begin
25lect'⾮数字'
26end
当然,我们也可以根据这种⽅式,定义⼀个⾃定义函数,这个后⾯再说。
背背佳如何穿戴sql 查询出某字段出现最多次数的值:
1-- 查询出表 Student 中名字(S_Name)出现次数最多的名字
郭德刚的相声
2lect top1 S_Name,COUNT(1) from Student group by S_Name order by COUNT(1) desc
sql rver [ca  when  then  el  end]:
1lect S_StuNo 学号,S_Name 姓名,
2ca S_Sex when'男'then'男⽣'when'⼥'then'⼥⽣'el'保密'end性别,        -- ⽅式⼀
3ca when S_Sex='男'then'男⽣'when S_Sex='⼥'then'⼥⽣'el'保密'end性别,    -- ⽅式⼆
4 S_Height ⾝⾼
5from Student青菜炒鸡蛋
sql OBJECT_ID、OBJECT_NAME、OBJECT_DEFINITION:
1if (OBJECT_ID('Student') is not null)    --判断是否存在 Student 这个表
2begin
3lect'表已存在'
4end
5el
6begin
7lect'表不存在,请创建'
8end
9
10--指定⼀个临时表名,则必须在临时表名前⾯加上数据库名,例如:
11IF OBJECT_ID('tempdb..#table1') is not null--判断临时表 table1 是否存在,
12lect'表已存在'
13el
14lect'表不存在,请创建'
15
16lect OBJECT_ID('Student')        -- 返回 245575913  根据对象名称返回对象ID
17
18lect OBJECT_NAME('245575913')        -- 返回 Student  根据对象ID返回对象名称
19
20lect OBJECT_DEFINITION('245575913')    --返回对象的源⽂本
21
22lect OBJECT_DEFINITION(OBJECT_ID('Student'))
⽰例,返回系统存储过程 sys.sp_columns 的定义:
1SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns'));
OBJECT_ID语法: OBJECT_ID ( '[ databa_name . [ schema_name ] . | schema_name . ] object_name' [ ,'object_type' ] )
参数:
' object_name ' (必填)
是要使⽤的对象。 object_name是varchar或nvarchar。如果object_name是varchar,它将隐式转换为nvarchar。可以选择是否指定数据库和架构名称。' object_type ' (可选)
架构范围的对象类型。 object_type是varchar或nvarchar。如果object_type是varchar,它将隐式转换为nvarchar。
返回类型:
return int
PS:对于空间索引,OBJECT_ID 返回 NULL。出现错误时,返回 NULL。
OBJECT_NAME语法: OBJECT_NAME ( object_id [, databa_id ] )
参数:
' object_id ' (必填)
要使⽤的对象的 ID。 object_id是int ,假定在指定的数据库中,或在当前数据库上下⽂中为架构范围的对象。
' databa_id '(可选)
要在其中查找对象的数据库的 ID。 databa_id是int。
返回类型:
人生哲理return nvarchar(max)
PS:出现错误时或调⽤⽅没有查看对象的权限时,将返回 NULL。如果⽬标数据库的 AUTO_CLOSE 选项设置为 ON,则此函数将打开此数据库。⽤户只能查看符合如下条件的安全对象的元数据:该安全对象为该⽤户所有,或已授予该⽤户对该安全对象的权限。
也就是说,如果⽤户对该对象没有任何权限,则那些会⽣成元数据的内置函数(如 OBJECT_NAME)可能返回 NULL。
OBJECT_DEFINITION语法:OBJECT_DEFINITION ( object_id )
参数:
' object_id ' (必填)
要使⽤的对象的 ID。 object_id是int,和假定以表⽰当前的数据库上下⽂中的对象。
返回类型:
return nvarchar(max)
PS:出现错误时或调⽤⽅没有查看对象的权限时,将返回 NULL。
参考:
/zh-cn/library/ms176090.aspx

本文发布于:2023-07-10 02:48:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1088402.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   返回   数据库
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图