在 SQL 服务器数据库中查找以小写字母开头的列,并将它们列为 SELECT 语句
Find Columns which starts with Lowercase letters in SQL Server Data Base and list them as a SELECT Statement
我正在尝试 Select 数据库中以小写字母开头的所有列。喜欢 'status'.
我写了一个命令如下:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE LEFT(COLUMN_NAME, 1) = 's'
我得到第一个字母并检查它是否等于小写's'。但它 Returns 所有列名都带有 's' 和 'S' 。
我什至试过这个:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE LEFT(COLUMN_NAME, 1) = LOWER('s')
但它也像上一个一样。
'S' 用于示例。所有字母我都需要它。
谢谢....
我认为 information_schema
表中的名称不区分大小写。所以,你的尝试不会只找到小写字母。
这给您留下了两个选择。一种是 fiddle 带排序规则以获得等效的区分大小写的排序规则。
另一种是使用ascii()
函数:
select *
from information_schema.columns
where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
Here 是一个 db<>fiddle 来说明差异。
我正在尝试 Select 数据库中以小写字母开头的所有列。喜欢 'status'.
我写了一个命令如下:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE LEFT(COLUMN_NAME, 1) = 's'
我得到第一个字母并检查它是否等于小写's'。但它 Returns 所有列名都带有 's' 和 'S' 。 我什至试过这个:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE LEFT(COLUMN_NAME, 1) = LOWER('s')
但它也像上一个一样。
'S' 用于示例。所有字母我都需要它。
谢谢....
我认为 information_schema
表中的名称不区分大小写。所以,你的尝试不会只找到小写字母。
这给您留下了两个选择。一种是 fiddle 带排序规则以获得等效的区分大小写的排序规则。
另一种是使用ascii()
函数:
select *
from information_schema.columns
where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
Here 是一个 db<>fiddle 来说明差异。