Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL完全修剪函数-Access/VBA代码我可以做,但我不&x27;我不知道SQL函数_Sql_Sql Server_Function_Ms Access_Trim - Fatal编程技术网

SQL完全修剪函数-Access/VBA代码我可以做,但我不&x27;我不知道SQL函数

SQL完全修剪函数-Access/VBA代码我可以做,但我不&x27;我不知道SQL函数,sql,sql-server,function,ms-access,trim,Sql,Sql Server,Function,Ms Access,Trim,我需要合并字段,然后在文本字段的中间删除额外的空格。使用Access对我来说很容易,但创建SQL函数却让我难以捉摸。这就是我在Access中的做法,有人能帮我创建SQL函数吗 在VBA Access查询中,我可以使用查询中的以下代码执行此操作: FullTrim([tblLeadsResi].[House Number] & [tblLeadsResi].[Street] & " " & [tblLeadsResi].[Street Suffix] &

我需要合并字段,然后在文本字段的中间删除额外的空格。使用Access对我来说很容易,但创建SQL函数却让我难以捉摸。这就是我在Access中的做法,有人能帮我创建SQL函数吗

在VBA Access查询中,我可以使用查询中的以下代码执行此操作:

FullTrim([tblLeadsResi].[House Number] & [tblLeadsResi].[Street] & " " & 
    [tblLeadsResi].[Street Suffix] & " " & [tblLeadsResi].[Post-directional] & 
    IIf(Not IsNull([tblLeadsResi].[Apartment Number])," #" & 
    [tblLeadsResi].[Apartment Number],""))
Access中的模块代码:(基本上,如果是双空格,则不会将第一个空格添加回)

公共函数FullTrim(stText作为字符串)作为变量
Dim intLen为整数,stPart为字符串,stBlank为字符串,stNewText为字符串
'   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
“+++从文本值中去掉任何空格++++
'   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
如果IsNull(stText)或stText=“”,则
FullTrim=“”
其他的
对于intLen=1到(Len(stText)-1)
stPart=Mid(stText,intLen,1)
stBlank=Mid(stText,intLen,2)
如果为空“”,则
stNewText=stNewText&stPart
如果结束
下一个intLen
intLen=Len(stText)
stPart=Mid(stText,intLen,1)
stNewText=stNewText&stPart
stNewText=修剪(stNewText)
FullTrim=stNewText
如果结束
端函数
尝试此功能:

CREATE FUNCTION [dbo].[FullTrim](@text nvarchar(max))
RETURNS nvarchar(max)
AS
BEGIN
    RETURN replace(@text, ' ', '')
END
…然后传入连接在一起的所有字段,如:

SELECT dbo.FullTrim([tblLeadsResi.House Number] + [tblLeadsResi.Street] + ...) 
FROM tblLeadsResi
...
尝试此功能:

CREATE FUNCTION [dbo].[FullTrim](@text nvarchar(max))
RETURNS nvarchar(max)
AS
BEGIN
    RETURN replace(@text, ' ', '')
END
…然后传入连接在一起的所有字段,如:

SELECT dbo.FullTrim([tblLeadsResi.House Number] + [tblLeadsResi.Street] + ...) 
FROM tblLeadsResi
...

创作

CREATE FUNCTION dbo.FullTrim(@Value NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
BEGIN
    DECLARE @Subs NVARCHAR(6)
    SET @Subs = '~@$$#%' -- Make this some string you will never have in your data
    RETURN LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(@Value, '  ', ' ' + @Subs), @Subs + ' ', ''), @Subs, '')))
END
用法

SELECT dbo.FullTrim('  This is a     string      with    many spaces ')
结果

This is a string with many spaces

创作

CREATE FUNCTION dbo.FullTrim(@Value NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
BEGIN
    DECLARE @Subs NVARCHAR(6)
    SET @Subs = '~@$$#%' -- Make this some string you will never have in your data
    RETURN LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(@Value, '  ', ' ' + @Subs), @Subs + ' ', ''), @Subs, '')))
END
用法

SELECT dbo.FullTrim('  This is a     string      with    many spaces ')
结果

This is a string with many spaces

谢谢你的帮助;我很感激。我能再问你一件事吗?。。。在VBA中,我使用IsNull()功能来检查某个内容是否为Null在SQL中是否相同?在SQL中是否为Null。您也可以使用isnull(expresion,value if null)谢谢您的帮助;我很感激。我能再问你一件事吗?。。。在VBA中,我使用IsNull()功能来检查某个内容是否为Null在SQL中是否相同?在SQL中是否为Null。您也可以使用isnull(expresion,value if null)。问题是我必须在数据中添加空格以合并字段,但有些字段是空的。实际上,我正在破坏数据以合并字段,因为我并不总是有街道后缀或方向数据。我试图通过将多个字段合并为一个字段来清理数据(我购买Lead,它们是这样来的)SQL并不意味着SQL Server。Oracle和Access以及许多其他数据库都有自己的SQL版本。如果您想要SQL Server答案,请使用SQL Server标记,而不是常规SQL标记。a)抱歉,我添加了常规SQL标记和SQL Server标记;我是这个网站的新手。B) 我也是SQL Server新手,如果您想给我一个如何更好地连接SQL Server的示例,我将不胜感激。C) 所提供的信息将帮助我进行未来的数据导入。我之所以在访问中进行完全修剪,首先是因为我从许多来源获取Lead数据,并且必须清理他们的数据。问题是我必须在数据中添加空格以合并字段,但有些字段是空白的。实际上,我正在破坏数据以合并字段,因为我并不总是有街道后缀或方向数据。我试图通过将多个字段合并为一个字段来清理数据(我购买Lead,它们是这样来的)SQL并不意味着SQL Server。Oracle和Access以及许多其他数据库都有自己的SQL版本。如果您想要SQL Server答案,请使用SQL Server标记,而不是常规SQL标记。a)抱歉,我添加了常规SQL标记和SQL Server标记;我是这个网站的新手。B) 我也是SQL Server新手,如果您想给我一个如何更好地连接SQL Server的示例,我将不胜感激。C) 所提供的信息将帮助我进行未来的数据导入。我之所以拥有完整的Trim-in-Access,首先是因为我从许多来源获取Lead数据,并且必须清理他们的数据。