【问题标题】:A query to get me specific alphabetic order for sybase获取我特定 sybase 字母顺序的查询
【发布时间】:2019-12-05 01:05:11
【问题描述】:

我有一个名为 phone_contacts 的表,其中包含两列:

telephone_contacts (
名称 varchar(100)
数字编号(20)
)

列名包含大约 20,000 行。

我想按字母过滤名字,例如:

我想要一个只能获取前 6 个字母(A、B、C、D、E、F G)的查询

然后,查询最后 6 个字母(U、V、W、X、Y、Z)

示例:列名包含以下数据: 安倍,汽车,夜晚,范围,鸡,动物园,whatsapp,facebook,viber Adu,aramt,自行车,男性,狗,鸡蛋 我想要一个只让我得到的查询(A,B,C,D,E,F G)所以结果将是 安倍,护理,鸡 facebook,adu,aramt,自行车,狗,鸡蛋 其余的被忽略

在oracle中我可以这样,sybase怎么做?

SELECT * FROM user_tab_cols WHERE SUBSTR(UPPER(table_name),1) BETWEEN 'A' 和 'Q'
SELECT * FROM user_tab_cols WHERE SUBSTR(UPPER(table_name),1) BETWEEN 'P' and 'Z'

【问题讨论】:

    标签: sybase


    【解决方案1】:

    在 Sybase 中,您可以使用正则表达式(正则表达式)来分隔字符范围 [A-G] 假设您的服务器设置为不区分大小写,您可以执行以下操作:

    SELECT * FROM telephone_contacts WHERE name LIKE "[A-G]%"
    SELECT * FROM telephone_contacts WHERE name LIKE "[U-Z]%"
    

    SELECT * FROM telephone_contacts WHERE name BETWEEN "A%" and "G%"
    SELECT * FROM telephone_contacts WHERE name BETWEEN "U%" and "Z%"
    

    如果您发现您的服务器区分大小写,那么您可以执行另一个答案中的建议,并使用upper(name)

    【讨论】:

      【解决方案2】:

      更简单:

      select * from yourtable where upper(name) like "[A-Q]%"
      
      select * from yourtable where upper(name) like "[P-Z]%"
      

      【讨论】:

      • 嗨,欢迎来到 Stack Overflow。此处不使用 HTML 标记。对于格式化,您可以使用文本窗口顶部的选项。
      • @MichaelGardner 你知道如何解决我的问题吗?
      猜你喜欢
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多