SQL Server过滤内容中文vs英文

时间:2016-01-11 11:05:15

标签: sql-server

我可以知道是否有任何SQL脚本可以实现我的下面的场景?

如果column1包含中文字符,请将值column2更新为'中文'
如果column1包含英文字符,请将值column2更新为'英文'。

2 个答案:

答案 0 :(得分:3)

您可以使用like operator来检查英语的列值。

UPDATE table1
SET col2= CASE WHEN col1 LIKE '[a-zA-Z0-9]' THEN'English'
          ELSE 'chinese' END

答案 1 :(得分:0)

您可以使用CONVERT(varchar(max), column1) COLLATE Latin1_General_BIN与原始列进行比较,以检查其是否包含任何Unicode字符

Sample

UPDATE table
SET column2 = 
   CASE 
       WHEN column1 = CONVERT(varchar(max), column1) COLLATE Latin1_General_BIN THEN 'English' 
       ELSE 'Chinese' -- Although the test is for Unicode, not only Chinese
   END