TSQL - 列に空白があるかどうかを確認する方法char(32)
?TSQL - 列にスペースがあるかどうかを調べる方法char(32)?
select *
from [sometable]
where CHARINDEX(' ', [somecolumn]) > 0
は動作しません。何か案は?
TSQL - 列に空白があるかどうかを確認する方法char(32)
?TSQL - 列にスペースがあるかどうかを調べる方法char(32)?
select *
from [sometable]
where CHARINDEX(' ', [somecolumn]) > 0
は動作しません。何か案は?
select * from [sometable] where somecolumn like '% %'
申し訳ありませんが、それは私のためには機能しません。 –
興味深い。それは動作しません。 char列の場合、すべての行を戻します。 varcharの場合は期待どおりに動作します。 – Joe
@Joe。 CHAR列は固定サイズなのでスペースが埋められます。 –
「機能しない」とはどういう意味ですか?両方の方法が私のために働きます:
SELECT ''''+a+'''' FROM(
SELECT 'asd fgh' AS a UNION ALL
SELECT ' fgh' AS a UNION ALL
SELECT 'asd ' AS a UNION ALL
SELECT 'asfdg') As t
WHERE a LIKE '% %'
---------
'asd fgh'
' fgh'
'asd '
SELECT ''''+a+'''' FROM(
SELECT 'asd fgh' AS a UNION ALL
SELECT ' fgh' AS a UNION ALL
SELECT 'asd ' AS a UNION ALL
SELECT 'asfdg') As t
WHERE CHARINDEX(' ', a) > 0
---------
'asd fgh'
' fgh'
'asd '
私の苦境の正確な修正ではなかったが、確かに私に近い溶液。これを提示するこの方法は、私と和音を打ちました。ありがとう。 – CSS
あなたはrtrim CHARカラムを持っていなければなりません。
CHAR列は、最大長まで右に空白が埋められます。
RTRIMは、最大長よりも短い文字列を格納するときに誤検出を防ぐのに役立ちます。
select * from [table] where rtrim(col) like '% %'
create table dropme
(foo char(32))
insert into dropme values('nospaces')
insert into dropme values('i have a space')
insert into dropme values('space bar')
select replace(foo,' ','|') from dropme
where foo like '% %'
nospaces
i|have|a|space
space|bar
select replace(foo,' ','|') from dropme
where rtrim(foo) like '% %'
i|have|a|space
space|bar
と 'ltrim()'と 'rtrim(ltrim(col))'のように? – Coops
@CodeBlend CHAR列は最大長まで右にスペースが埋め込まれます。 RTRIMは、最大長よりも短い文字列を格納するときに誤検出を回避するのに役立ちます。 LTRIMはそれを避けるのに役立ちませんし、値の先頭にスペースを入れたい場合は、実際には偽陰性を引き起こす可能性があります。 –
次の例では、これを実現する方法を示しなければなりません。あなたが本当に問題が何であるかを説明していませんでしたが与えられ
create table #tableTest
(
someData varchar(100) not null
);
insert into #tableTest(someData) values('dsadsa');
insert into #tableTest(someData) values('fdssf 432423');
insert into #tableTest(someData) values('432423fsdv');
insert into #tableTest(someData) values('321 jhlhkj 543');
select *
from #tableTest;
select *
from #tableTest
where charindex(char(32),someData) > 0;
drop table #tableTest;
...あなたはCHAR(160)
、hardspace (nbsp)
ため
お探しですか?またはtab CHAR(9)
? これらは、スペースのように見えることができますが、以下は、私のために働い
OPはスペース文字(32)いいえ? –
はい、他のポスターはchar(32)の作品を実演しました。だから私は選択肢を提供する... – gbn
されていません。
PrdPicture LIKE '%'+char(160)+'%'
仕事と何を失敗する何の値? – gbn
フィールドsomecolumnはどのタイプですか? –