SQL存储过程语句

时间:2012-02-07 23:23:09

标签: sql sql-server

我有以下内容,但我无法在'@Category之间添加@Subcateory,尝试在SQL上运行并证明它需要'其他在这方面有人帮助我是行不通的:

Train = @Train AND Sub= @Sub

我试过

'''+@train+'''
'@train'

FROM [Items]
WHERE 
     Description LIKE '%' + @SearchDescription + '%' 
     AND Claimed = @ClaimedCheck 
     AND RetentionEnd = @RetentionEndCheck 
     AND Train = (''''+ @Train +'''') AND Sub = (''''+ @Sub +'''')

它返回空的结果,但它可以只用

FROM [Items]
WHERE 
     Description LIKE '%' + @SearchDescription + '%' 
     AND Claimed = @ClaimedCheck 
     AND RetentionEnd = @RetentionEndCheck

答案:

@Something VARCHAR(100)

我将varchar编辑为VARCHAR(100)而非VARCHAR。它奏效了。

4 个答案:

答案 0 :(得分:2)

你的问题过于笼统,无法提供具体的答案,但如果你在选择中连接字符串,这里有一些常见的做法:

-- Escape single quote character
SELECT Name, 'Someone\'s name' AS ConcatedName
FROM table

或:

-- Use two single quote characters to mimic the effect of 
-- escaping one single quote character.
SELECT Name, 'Someone''s name' AS ConcatedName
FROM table;

或:

-- Concatenate strings and columns
SELECT CONCAT('Quantity Per Unit for ', ProductName, ' is ', QuantityPerUnit)
        AS "Product Details"
FROM products;

答案 1 :(得分:1)

我假设你指的是连接字符串。

这可以通过以下类型的查询来完成:

SELECT @Category + ' ' + @SubCategory

如果这两个变量都是nvarchar,那么它们将连接并成为一个字符串输出。

答案 2 :(得分:1)

我认为你需要

'''' + @train + ''''

如果@ train的值为choo choo,则评估为'choo choo'

答案 3 :(得分:1)

很难说出你想要的东西,但是如果你想逃避单引号,你可以通过添加额外的引用来实现,即''。要在两个其他字段之间添加它,您可以执行以下操作:

SELECT @Category + '''' + @SubCategory

''''中,第一个和最后一个单引号开始和结束一个文字字符串,而中间的两个引号则转义要包含在字符串中的实际单引号。

因此,根据您的示例,您将使用:

'''' + @train + ''''