2

わかりましたので、SQL Server のテーブルに列があります。各レコードには文字列 (つまり、名前) があります。一部の文字列には、英語と非英語の文字が含まれています。

英語と英語以外の文字を含むレコードのみを選択する必要があります。

どうすればそれを行うことができますか?

私の試み...

Select * from Table
Where Nameofthecolumn NOT LIKE '%[A-Z]%'
Go

これにより、空のテーブルが得られます。

英語と英語以外の文字を含むレコードが少なくとも 2 つあることは確かです。

出力としてこれら 2 つのレコードが必要です。

しようとしていた

Select * from Table
Where Nameofthecolumn NOT LIKE '%[A-Z,a-z]%' AND Like '%[A-Z,a-z]%'
Go

しかし、Like/Not Like で boolean を使用できることがわかりました。

正しい方向に導いてください。

ありがとう

4

2 に答える 2

1

たとえば、AZ に一致しないものを見つけます。

... WHERE col LIKE '%[^A-Z]%' AND col LIKE '%[A-Z]%';

照合で大文字と小文字が区別されない場合は、az は必要ありません。大文字と小文字が区別される場合は、COLLATE句を追加できます。ただし、予期されるスペース、数字、およびその他の英数字以外を除外することもできます。

于 2012-05-03T16:10:21.740 に答える
0

このような意味ですか?

select 1 as field1,'1' as field2 into #data
union all select 1,'abc'
union all select 2,'abc'
union all select 3,'999'


SELECT * FROM 
(
select field1,field2
,MAX(CASE WHEN field2 NOT LIKE '%[A-Z,a-z]%' THEN 1 ELSE 0 END) OVER (PARTITION BY field1) 
 + MAX(CASE WHEN field2 LIKE '%[A-Z,a-z]%' THEN 1 ELSE 0 END) OVER (PARTITION BY field1) as chars 
FROM #data
) alias
WHERE chars =2
于 2012-05-03T16:16:36.307 に答える