Char
列からVarchar
列にレコードをコピーした後、 like
声明Char列からVarchar列にレコードをコピーした後、SQL Server 2014のlike文を使用して行を見つけることができませんでしたが、2003年の場合は
Create database testDB
Go
USE [testDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[TestTable1]
(
[Col_char] [char](20) NULL,
[Col_nchar] [nchar](64) NULL,
[Col_varchar] [varchar](64) NULL,
[Col_nvarchar] [nvarchar](64) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
insert into TestTable1 values ('Sumit1%', 'Sumit1%', 'Sumit1%', 'Sumit1%')
insert into TestTable1 values ('Sumit2*', 'Sumit2*', null, 'Sumit2*')
select
[Col_char], LEN([Col_char]),
[Col_nchar], LEN([Col_nchar]),
[Col_varchar], LEN([Col_varchar]),
[Col_nvarchar], LEN([Col_nvarchar])
from
TestTable1
この行は、私が%
&共同で*
を交換しています今
select *
from TestTable1
where 'sumit1' like [Col_varchar]
検索結果を与えているを使用して行を検索しますあなたがSET ANSI_PADDING ON
CHAR(20)
を持っている場合は、[Col_varchar]欄
update TestTable1
set [Col_varchar] = Replace([Col_char], '*', '%')
where [Col_char] like '%2%'
select * from TestTable1
select * from TestTable1 where 'sumit1' like [Col_varchar]
-- this line is not showing any results
select * from TestTable1 where 'sumit2' like [Col_varchar]
select
Len(Replace([Col_char], '*', '%')),
Len(Replace([Col_varchar], '*', '%')), *
from TestTable1
をANSI_PADDING上
情報 – xQbert
あなたの例では、限り、あなたは、クエリ – JamieD77
単一引用符の先頭に 'SET ANSI_PADDING on'のをオフに残して...私のために正常に動作します文字列リテラル用です。 ANSI SQLで定義されているように、識別子(列名など)には二重引用符を使用します。 (SQL Serverにも角括弧があります) – jarlh