日期:2014-05-16  浏览次数:20406 次

Oracle中引号对存储大小写影响和UPPER、LOWER函数在匹配中的使用

oracle中:
?? 存储时,若没有引号的对象名是转换为大写后再存储,反之是以实际字符存储。
?? 访问 时,如果不确定存储时有没加引号,则
UPPER(X.*) ='STRING1';,确定为大小写则以实际字符匹配访问X.*='string'。 ????
说明 '?'引号在Oracle中的重要性。
?结合使用 UPPER(X.*)?、 LOWER(X.*)=或IN('','','');进行匹配处理,确保能够正确匹配。

for example:
?SELECT ag.FirstName||' '||ag.LastName AS Agent,? --其中的对象名FirstName可以用firstName来代替,因为都是大写存取
???????????????? pr.Address,pr.City,li.AskingPrice
FROM Agents ag INNER JOIN Listings li??? --此INNER JOIN用来获取列ag.firstName lastName
?ON ag.AgentID=li.ListingAgentID????????? --利用外键
??? INNER JOIN Properties pr?????????? --此INNER JOIN实现取得pr.Address、pr.city 及符合条件的li.AskingPrice
ON li.PropertyID=pr.PropertyID
WHERE UPPER(pr.city) IN('ORICK','BLUE LAKE','LOLETA')--
UPPER确保获取Properties中特定的city中的propertyID
ORDER BY pr.City,li.AskingPrice;