SQL Server 2008 поиск двухбайтовых символов - PullRequest
5 голосов
/ 28 февраля 2011

Есть ли способ определить, какие записи являются двухбайтовыми символами в SQL Server 2008?

Например, я хочу запросить все записи на китайском, корейском и японском языках в таблице, если поле страны пусто, как я могу это сделать?

Ваш вклад очень важен.

Думаю, я бы запутал вас, ребята. Все хранится в nvarchar. Некоторые записи на китайском, некоторые на корейском, некоторые на испанском и другие. Мы хотим узнать о китайских, японских и корейских записях, чтобы что-то с этим сделать. Имеет ли это смысл?

Ответы [ 2 ]

5 голосов
/ 28 февраля 2011

Есть ли способ узнать, какие записи являются двухбайтовыми символами в SQL Server 2008?

Вы можете использовать это - если двухбайтовый символ не может быть уменьшен до одного байта, тогда у вас есть CJK в записи:

select * from tbl
where convert(nvarchar(max),convert(varchar(max),somecolumn)) != somecolumn
0 голосов
/ 28 февраля 2011

Если я вас понимаю, то это может быть так же просто, как хранимый процесс, как это:

DECLARE @SearchString nvarchar(MAX)
...
SELECT * FROM MyTable
WHERE Country = '' and SearchField = @SearchString

Предполагается, что SearchField равен nvarchar.

Если у вас есть столбец nvarchar, тогда вся информация в нем будет двухбайтовой.

Если вы пытаетесь найти все столбцы типа nvarchar, используйте запрос ниже:

SELECT OBJECT_NAME(col.OBJECT_ID) as [TableName], col.[name] as [ColName], typ.[name]
FROM sys.all_columns col
INNER JOIN sys.types typ
ON col.user_type_id = typ.user_type_id
WHERE col.user_type_id = 231
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...