SQL Server 2008 R2 を使用しています。SQL ステートメントに基づいてレコードセットを作成しようとしています。WHERE
節には'INTERNATIONAL PEOPLE' + Char(39) + 'S'
. したがって、一重引用符はそれを PEOPLE'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
ゴールドバーグ氏の住所: 1399 Firestone DriveBothell 79 98011
幸運を!
于 2016-05-31T19:14:03.493 に答える