字符集不匹配

时间:2009-07-10 14:18:55

标签: sql oracle

我有一个这样的SQL语句:

SELECT 
  a.ColumnA, b.ColumnB || 
 CASE WHEN TRIM(c.ColumnC) IS NOT NULL THEN ' (' || c.ColumnC || ')' ELSE '' END AS ClassName
 FROM TableA a INNER JOIN TableB b ON a.SomeColumn = b.SomeColumn 
 INNER JOIN TableC c on a.SomeCol = c.SomeCol

我在CASE表达式的“ELSE”部分收到错误“字符集不匹配”。 有人可以建议我做错了吗?谢谢。

4 个答案:

答案 0 :(得分:2)

如果没有CAST语句,则无法连接VARCHAR和NVARCHAR值。

答案 1 :(得分:1)

CASE WHEN TRIM(c.ColumnC) IS NOT NULL 
     THEN ' (' || c.ColumnC || ')' 
     ELSE N'' END A

是一种更简洁的解决方案。 N''给你一个unicode空字符串

答案 2 :(得分:0)

你尝试用NULL替换''吗? 另外,请尝试完全删除ELSE部分,因为无论如何它都会返回NULL。

答案 3 :(得分:0)

只需擦除ELSE,就可以使代码更易于阅读