【发布时间】:2019-04-22 23:14:49
【问题描述】:
我代表为我的客户工作的某个人提出这个问题,该客户问我这个问题。我其实比 SQL Server 更熟悉 mySQL,但不幸的是,SQL Server 是客户端使用多年的东西。
问题基本上是这样的:SQL Server 中有没有办法将字符串拆分为多个值(例如数组?),这些值可以在 WHERE 语句中使用。
这是我所说的 PHP 示例。
<?php
$string = "10,11,12,13";
$explode = explode(",", $string);
?>
$explode 将等于 array(10,11,12,13)。我需要做的是这样的:
SELECT {long field list] FROM {tables} WHERE hour IN SPLIT(",", "10,11,12,13")
SPLIT 是我执行拆分的伪代码函数
我之所以没有在 PHP 中执行此操作,是因为查询是由报告软件构建的,我们无法在将其发送到数据库之前执行逻辑(例如我的 PHP 代码),并且软件将多个值作为由管道 (|) 分隔的单个字符串返回。
不幸的是,我无法访问报告软件(我想他说它叫做 Logi 或 LogiReports 或其他什么)或我的同事正在起草的查询,但对于这个问题,真正重要的是 WHERE 子句。
有什么想法吗?
【问题讨论】:
-
这被标记为sql server 2000;如果实际上是 2005 年,那么有一个新的表值用户定义函数可以很好地完成这类事情
-
哈哈,你不知道我说了多少“如果这些人使用 2005 就好了”——我已经说过很多事情,包括缺少 HashBytes() 函数.不幸的是,它是服务器 2000。
标签: sql-server tsql sql-server-2000