我正在使用 SQL Server 2008 R2。我正在尝试基于 sql 语句创建记录集。在WHERE
子句中是'INTERNATIONAL PEOPLE' + Char(39) + 'S'
. 所以单引号使它成为人们的。这是失败的。从研究看来,这应该不会失败。任何帮助都会很棒。谢谢
问问题
57753 次
4 回答
15
您可以通过单引号转义单引号:)
WHERE field = 'INTERNATIONAL PEOPLE''S'
于 2013-02-02T00:00:38.970 回答
9
从您在评论中的示例中,我猜这是因为您的表已命名1099
,而错误并不是真正来自您的WHERE
子句。T-SQL 要求表名以字母字符开头。
尝试在其周围加上括号:
SELECT * FROM [1099] WHERE Name ='INTERNATIONAL PEOPLE' + CHAR(39) + 'S'
于 2013-02-02T03:27:32.127 回答
1
你能发布你的查询吗?转义单引号 -''- 应该有效。使用下面的代码进行测试。
IF OBJECT_ID('TempDB..#SingleQuoteTest') IS NOT NULL
BEGIN
DROP TABLE #SingleQuoteTest
END
CREATE TABLE #SingleQuoteTest
(
Value VARCHAR(MAX)
)
INSERT INTO #SingleQuoteTest
(
Value
)
SELECT 'International People'
UNION SELECT 'International People''s'
UNION SELECT 'John O''connor'
SELECT Value
FROM #SingleQuoteTest
WHERE Value = 'International People''s'
--WHERE Value = 'John O''connor'
于 2013-02-02T00:54:07.297 回答
0
撇号 s 是撰写报告的基本要素。这是一个例子。在这种情况下,它赋予了一个人的占有欲。
SELECT TitleAndLastName = (Title + ' ' + LastName +CHAR(39) +'s' + ' ' + 'address is:'), FullAddress = (AddressLine1 + City + cast(StateProvinceID as nvarchar) + PostalCode)
FROM [Person].[Person] as p
Inner Join [Person].[Address] as a
on a.AddressID = p.BusinessEntityID
Where AddressLine1 is not null
and Title is not null;
上述查询的结果将包含每个人的姓氏 ('s)。
TitleAndLastName FullAddress
埃里克森女士的地址是:1226 Shoe St.Bothell 79 98011
Goldberg 先生的地址是:1399 Firestone DriveBothell 79 98011
祝你好运!
于 2016-05-31T19:14:03.493 回答