1

フィールドを組み合わせてから、テキストフィールドの中央にある余分なスペースを削除する必要があります。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],""))

アクセスのモジュールコード:(基本的に、ダブルスペースの場合、最初のスペースは追加されません)

Public Function FullTrim(stText As String) As Variant
Dim intLen As Integer, stPart As String, stBlank As String, stNewText As String

    '   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    '   ++++    Takes any spaces away from a Text Value     ++++
    '   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    If IsNull(stText) Or stText = "" Then
        FullTrim = ""
    Else
        For intLen = 1 To (Len(stText) - 1)
            stPart = Mid(stText, intLen, 1)
            stBlank = Mid(stText, intLen, 2)
            If stBlank <> "  " Then
                stNewText = stNewText & stPart
            End If
        Next intLen

        intLen = Len(stText)
        stPart = Mid(stText, intLen, 1)
        stNewText = stNewText & stPart

        stNewText = Trim(stNewText)
        FullTrim = stNewText
    End If
End Function
4

2 に答える 2

1

創造

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
于 2012-06-24T03:14:01.017 に答える
0

この関数を試してください:

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
...
于 2012-06-24T03:03:30.180 に答える