如何在SQL中将Replace语句设置为查询字符串?

时间:2015-07-23 02:18:19

标签: mysql sql str-replace

这是我的问题..但我会举例说明它更简单

我有一个名为usp_Replace的存储过程。这个sp将用空格替换引号。 这是原始查询,但未将其设置为查询字符串..

CREATE PROCEDURE usp_Replace 
@desc varchar(50)

AS
BEGIN

    SET NOCOUNT ON;



SELECT '' + Replace(REPLACE(REPLACE(@desc, CHAR(13), ''), CHAR(10), ''),'"','') + ''

END

,但.. 我想将select语句设置为查询字符串,因为由于某种原因,我将不得不使用条件语句,但不会显示它,因为它不是问题的一部分。

下面..

ALTER PROCEDURE usp_Replace
@desc varchar(50)

AS
BEGIN

    SET NOCOUNT ON;

DECLARE @query nvarchar(max)
DECLARE @condition nvarchar(max)

SET @condition = null
SET @query = ' SELECT '' + Replace(REPLACE(REPLACE('''+@desc+''', CHAR(13), ''), CHAR(10), ''),''"'','') + '' '

    SET @query = @query + ISNULL(@condition,'') 
    EXEC sp_executesql @query 

END

我收到错误,导致有未公开的引号。 我真的对如何以及在何处放置单引号有疑问。

如果您遇到此问题或任何链接/建议,请提供帮助。我很乐意了解它。感谢。

1 个答案:

答案 0 :(得分:1)

您需要引用字符串中的所有单词,包括空字符串。因此,<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/card_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="@dimen/collapsingToolbar_height" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginBottom="@dimen/default_margin" app:expandedTitleMarginEnd="@dimen/sheet_expanded_title_margin" app:expandedTitleMarginStart="@dimen/sheet_expanded_title_margin" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="@dimen/default_tab_layout_height" app:tabGravity="center" app:tabMinWidth="120dp" app:tabMode="scrollable"/> </android.support.design.widget.AppBarLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" style="@style/Fab" android:src="@drawable/ic_add_white_24dp" app:backgroundTint="@color/accent_dark" app:borderWidth="2dp" /> 变为''

''''

我不确定空字符串在开头和结尾处的作用是什么,所以我只是删除它们。