SQL操作字符串及数字汇总

ExpandedBlockStart.gif 代码
 1  --=========== 字符串使用汇总 ================
 2 
 3  -- 将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处
 4  select stuff( ' hello,world! ' , 4 , 4 , ' **** ' )    -- 返回值hel **** orld !
 5 
 6  -- 返回从指定位置开始指定长度的字符串
 7  select substring( ' Hello,World! ' , 2 , 10 )    -- 返回值ello,World
 8 
 9  -- 将字符串中某段字符替换为指定的字符串
10  select replace( ' hello,world! ' , ' ll ' , ' aa ' -- 返回值heaao,world !
11 
12  -- 去除字符串中左边的空格
13  select ltrim( '    hello,world! ' )     -- 返回值hello,world !
14 
15  -- 去除字符串中左边的空格
16  select ltrim( ' hello,world!    ' )     -- 返回值hello,world !
17 
18  -- 去除字符串中左边和右边的空格
19  select ltrim( '     hello,world!    ' )    -- 返回值hello,world !
20 
21  -- 将NULL值替换为指定字符
22  select isnull( ' a ' , null )      -- 返回值a
23 
24  -- 转换数据类型
25  select cast( ' 2007-10-11 '   as  datetime)    -- 返回值2007 - 10 - 11   00 : 00 : 00.000
26  select convert(datetime, ' 2007-10-11 ' )    -- 返回值2007 - 10 - 11   00 : 00 : 00.000
27 
28  -- 获取字符串长度
29  select len( ' hello,world! ' )     -- 返回值12
30 
31  -- 获取字符串的前3个字符
32  select left( ' hello,world! ' , 3 )     -- 返回值hel
33 
34  -- 获取字符串的后3个字符
35  select right( ' hello,world! ' , 3 )     -- 返回值ld !
36 
37  -- 去除字符串的前3个字符
38  select right( ' hello,world! ' ,(len( ' hello,world! ' ) - 3 ))  -- 返回值lo,world !
39 
40  -- 去除字符串的后3个字符
41  select left( ' hello,world! ' ,(len( ' hello,world! ' ) - 3 ))  -- 返回值hello,wor
42 
43  -- 获取在该字符串中某字符串的位置(返回数字) 
44  select charindex( ' e ' , ' hello,world! ' )    -- 返回值2
45 
46  -- 返回从第2个字符开始前4个字符
47  select left(right( ' [哈哈哈哈]aaa ' ,len( ' [哈哈哈哈]aaa ' ) - 1 ), 4 -- 返回值哈哈哈哈
48 
49  -- 返回字符的小写形式
50  select lower( ' HELLO,WORLD! ' )     -- 返回值hello,world !
51 
52  -- 返回字符的大写形式
53  select UPPER( ' hello,world! ' )     -- 返回值HELLO,WORLD !
54 
55  -- 用第三个表达式替换第一个字符串表达式中出现的所有第二个指定字符串表达式的匹配项
56  (如果其中有一个输入参数属于 nvarchar 数据类型,则返回 nvarchar;否则返回 varchar。如果任何一个参数为 NULL,则返回 NULL。)
57  SELECT REPLACE( ' Hello,World! ' , ' l ' , ' a ' )    -- 返回值Heaao,Worad !
58  SELECT REPLACE( ' Hello,World! ' , ' l ' , '' )    -- 返回值Heo,Word !
59  SELECT REPLACE( ' Hello,World! ' , ' l ' , null )    -- 返回值NULL
60 
61  -- 以右边参数数值次数复制字符表达式
62  select REPLICATE( ' Hello,World! ' , 4 )    -- 返回值Hello,World ! Hello,World ! Hello,World ! Hello,World !
63 
64  -- 返回反转后的字符串
65  select REVERSE( ' Hello,World! ' )     -- 返回值 ! dlroW,olleH
66 
67  -- 使用DIFFERENCE时,两个字符串发音越相似(仅限于英文字符),返回值越大(返回值在0 - 4之间)
68  DIFFERENCE( ' sun ' , ' san ' )     -- 返回值4
69  DIFFERENCE( ' sun ' , ' safdsdf ' )    -- 返回值3
70  DIFFERENCE( ' sun ' , ' dgffgfdg ' )    -- 返回值0
71 
72  -- 将带小数点的数字类型转换为可设定长度可设定小数位的四舍五入后的字符串
73  SELECT STR( 123.34584 7 3 )    -- 返回值123. 346
74  -- 当设定长度值小于整数部位长度时,字符串将返回设定长度个 *
75  SELECT STR( 123333.34584 5 4 )    -- 返回值 *****
76 
77  --===================================================================================
78 
79  --===================================== 数字操作汇总 ==================================
80 
81  -- 返回指定数字的最大整数
82  select floor( 123456.1234 )    -- 返回值123456
83 
84  -- 返回不带小数部分并且不小于其参数的值的最小数字。如果参数是一个空序列,则返回空序列
85  select ceiling( 123.010 )     -- 返回124
86  select ceiling( null )     -- 返回NULL
87 
88  -- 返回四舍五入后的最接近该数值的数值
89  select round( 126.018 , 2 )     -- 返回126. 12
90 
91  -- 返回一个0 - 1之间的FLoat类型的随机数
92  select rand()      -- 返回0. 94170703697981
93 
94  -- 返回圆周率PI的值
95  SELECT PI()      -- 返回3. 14159265358979
96 
97 
98  文章出处:DIY部落(http: // www.diybl.com/course/7_databases/database_other/20090213/155355.html)

 

转载于:https://www.cnblogs.com/angleSJW/archive/2009/12/17/1626080.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server中,将字符串转换为数字可以使用几种方法。首先,可以使用CAST函数将字符串转换为DECIMAL类型,如所示。例如,可以使用以下语句将字符串'6.0'转换为DECIMAL(6, 2)类型的数字:CAST('6.0' AS DECIMAL(6, 2)),结果为6.00。 另一种方法是使用CONVERT函数来执行字符串数字的转换。可以使用以下语句将字符串'6.0'转换为DECIMAL(6, 2)类型的数字:CONVERT(DECIMAL(6, 2), '6.0'),结果同样为6.00。 如果字符串可能包含空值或空字符串,可以使用ISNULL函数来处理。然而,如果将空字符串直接传递给ISNULL函数进行转换,可能会遇到错误。这是因为ISNULL函数对空字符串的处理方式与CAST和CONVERT函数不同。要解决这个问题,可以先使用CASE函数将空字符串转换为0,然后再使用CAST或CONVERT函数进行进一步的转换,如和所示。 综上所述,要在SQL Server中将字符串转换为数字,您可以使用CAST、CONVERT和CASE函数的组合来实现所需的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SQLserver 字符串数字问题](https://blog.csdn.net/weixin_39823527/article/details/90022608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [sqlserver 字符串类型转换成小数或者整数类型](https://blog.csdn.net/Pei_hua100/article/details/125486924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值