Sql server 如何识别TSQL中的大写和小写单词?
我们需要以某种方式区分所有大写字母和标题词,例如:Sql server 如何识别TSQL中的大写和小写单词?,sql-server,tsql,Sql Server,Tsql,我们需要以某种方式区分所有大写字母和标题词,例如: [Column 1] Kenya MELBOURNE Japan SYDNEY CANBERRA WOLLONGONG United States United Kingdoms 大写的意思是城市,标题的意思是国家 我们一直在寻找其他专栏来区分这些东西,但这是我们可以找到的情感性专栏。要识别城市,请检查文本是否与其值相同: 请注意,正如Aaron Bertrand正确指出的,这取决于排序规则。要识别城市,请检查文本是否与其值相同: 请注意,正
[Column 1]
Kenya
MELBOURNE
Japan
SYDNEY
CANBERRA
WOLLONGONG
United States
United Kingdoms
大写的意思是城市,标题的意思是国家
我们一直在寻找其他专栏来区分这些东西,但这是我们可以找到的情感性专栏。要识别城市,请检查文本是否与其值相同:
请注意,正如Aaron Bertrand正确指出的,这取决于排序规则。要识别城市,请检查文本是否与其值相同:
请注意,正如Aaron Bertrand正确指出的,这取决于排序。哇,区分两种不同类型的事实是多么糟糕的一种方式 无论如何,您可以通过将列更改为区分大小写,或对每个比较使用
COLLATE
子句来执行区分大小写的比较:
DECLARE @x TABLE(c VARCHAR(255));
INSERT @x VALUES
('Kenya'),
('MELBOURNE'),
('Japan'),
('SYDNEY'),
('CANBERRA'),
('WOLLONGONG'),
('United States'),
('United Kingdom');
SELECT city = CASE
WHEN c = UPPER(c) COLLATE Latin1_General_BIN
THEN c ELSE NULL END,
country = CASE
WHEN c <> UPPER(c) COLLATE Latin1_General_BIN
THEN c ELSE NULL END
FROM @x;
哇,区分两种不同类型的事实真是糟糕透顶 无论如何,您可以通过将列更改为区分大小写,或对每个比较使用
COLLATE
子句来执行区分大小写的比较:
DECLARE @x TABLE(c VARCHAR(255));
INSERT @x VALUES
('Kenya'),
('MELBOURNE'),
('Japan'),
('SYDNEY'),
('CANBERRA'),
('WOLLONGONG'),
('United States'),
('United Kingdom');
SELECT city = CASE
WHEN c = UPPER(c) COLLATE Latin1_General_BIN
THEN c ELSE NULL END,
country = CASE
WHEN c <> UPPER(c) COLLATE Latin1_General_BIN
THEN c ELSE NULL END
FROM @x;
如果排序不区分大小写,SQLServer会认为它们是相同的。我认为它确实是相同的。他可能需要为此编写一个函数。如果排序不区分大小写,SQLServer会认为它们是相同的。我认为它确实是相同的。他可能需要为此编写一个函数。不是说你是个混蛋,但你为什么要用case来确定一个词的意思呢?添加一列或将其存储在不同的表中:pWe仅分析数据。原来是这样的。:)嗯。不是说你是个混蛋,但你为什么要用case来确定一个词的意思呢?添加一列或将其存储在不同的表中:pWe仅分析数据。原来是这样的。:)
city country
---------- --------------
NULL Kenya
MELBOURNE NULL
NULL Japan
SYDNEY NULL
CANBERRA NULL
WOLLONGONG NULL
NULL United States
NULL United Kingdom