【问题标题】:how to use substr in SQL Server?如何在 SQL Server 中使用 substr?
【发布时间】:2014-01-30 13:39:44
【问题描述】:

我有以下 SAS 中使用的代码的摘录,并想在 SQL Server 中编写它以提取数据。

substr(zipname,1,4) in("2000","9000","3000","1000");run; 

如何在 SQL Server 中编写此代码?

我试过并得到了这个错误:

在上下文中指定的非布尔类型的表达式 预计状况

【问题讨论】:

  • 翻译一下这个意思怎么样? IN 子句到底应该怎么做?
  • 修复双引号后,可以使用left(zipname, 4)代替substring()

标签: sql sql-server sas


【解决方案1】:

在sql server中,没有substr函数(是substring

顺便说一句,你需要一个完整的查询...

select blabla
from blibli
where substring(zipname, 1, 4) in ('2000', '9000', 3000', '1000')

假设 zipname 是 varchar 或类似的...

【讨论】:

  • 从现在开始,我肯定会将我的临时表命名为 blibliblabla 列。
  • 谢谢。有效!为什么我没有想到子字符串?谢谢。
【解决方案2】:

您需要一个从中获取记录的表,并且 zipname 将是表中的一列。声明将是这样的:

select * from tablename where substring(zipname,1,4) in ('2000','9000','3000','1000')

【讨论】:

    【解决方案3】:

    既然你想要前x个字符,你也可以使用left()函数。

     where left(zipname,  4) in (values go here)
    

    请记住,您的值必须是单引号。您的问题有双引号。

    【讨论】:

    • 不是left(zipname,4)吗?
    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多