本帖最后由 向東 于 2018-8-13 10:16 编辑
SQL内置函数 字符串左右空格 掐头去尾
语法 返回删除了前/后导空格之后的字符表达式。 LTRIM ( character_expression ) --掐头 RTRIM ( character_expression ) --去尾
参数
character_expression 字符数据或二进制数据的表达式。character_expression 可以是常量、变量或列。character_expression 必须属于某个可隐式转换为 varchar 的数据类型(text、ntext 和 image 除外)。否则,请使用 CAST 显式转换 character_expression。
返回类型 varchar 或nvarchar
测试
- DECLARE @string_to_trim varchar(60)
- SET @string_to_trim = ' 12 34 '
- SELECT '头' + RTRIM(LTRIM(@string_to_trim)) + '尾'
- GO
复制代码
在 Microsoft SQL Server Management Studio 中,新建查询,复制粘贴上面的代码,执行,就可以看见效果了!
版主说不能发SQL的内容在本版,我就加上VBA! ---------------------------------------------------------------------------------------------- 下面言归正传: 在 Microsoft SQL Server Management Studio 中,选择一个测试数据库,然后新建查询,复制粘贴下面的代码,执行,就可以创建一个测试用的存储过程了。 - IF OBJECT_ID (N'PROC_TEST', N'P') IS NOT NULL
- DROP procedure PROC_TEST;
- GO --检测有没有这个存储过程,有就删除掉
- CREATE procedure PROC_TEST
- @string_to_trim varchar(64), --输入参数
- @output_string varchar(64) OUTPUT --输入输出参数
- AS
- SET @output_string = '头' + RTRIM(LTRIM(@string_to_trim)) + '尾' --就是前面说的掐头去尾大法!
- GO
复制代码建好了测试用存储过程,下面就来看看VBA如何调用这个存储过程了: 创建下面的测试代码,估计大家都是轻车熟路了 - Private Sub CommandButton1_Click()
- Dim lcConnectionString, lcCommandText As String
- Dim loADODBConnection As New ADODB.Connection '注意引用,在VBE中菜单栏选择【工具】-【引用】,找到:Microsoft ActiveX Data Objects 2.8 Library (或更新版本) 打钩。
- Dim loADODBCommand As New ADODB.Command
- Dim inputStr As String
-
- inputStr = " 12 34 " '存储过程 的 输入字符串
- '-------------------------------------------------------------------------连接字符串
- lcConnectionString = "Provider=SQLOLEDB;Data Source=数据服务器名;Initial Catalog=数据库名;User Id=sa;Password=密码;" '使用OLEDB数据提供程序 方式。数据服务器名,数据库名,密码 根据实际情况填入
- loADODBConnection.Open lcConnectionString
- '-------------------------------------------------------------------------设置 ADODB.Command
- With loADODBCommand
- .ActiveConnection = loADODBConnection
- .CommandText = "PROC_TEST" '存储过程名
- .CommandType = adCmdStoredProc '设定 CommandText 为 储过程名
- .Parameters.Append .CreateParameter("@str", adVarChar, adParamInput, 64, inputStr) '添加参数,此处为输入参数
- .Parameters.Append .CreateParameter("@outstr", adVarChar, adParamOutput, 64) '添加参数,此处为输出参数
- .Execute '执行 CommandText
- MsgBox .Parameters("@outstr") '调用输出参数
- End With
-
- '--------------------------------------------------------------------------关闭连接
- loADODBConnection.Close
- Set loADODBConnection = Nothing
- Set loADODBCommand = Nothing
-
- End Sub
复制代码 代码都有解释,更多ADO内容参见:ADO参考手册:http://www.w3school.com.cn/ado/ado_reference.asp
顺带说一下:发现一个问题,我用 Google Chrome 版本 68.0.3440.106(正式版本) (64 位)浏览器复制代码,出来后会有乱码。
用 Firefox 61.0.2 (64 位) 或者 IE 11、Microsoft Edge 都没问题。
|