我有一个存储数据的列(42,12).现在我想获取42或12(两个不同的选择查询).我搜索并发现了一些类似但更复杂的场景.这有什么简单的方法吗?我正在使用MSSQL Server 2005.
鉴于总会有两个值,它们将是整数
我会告诉你,你遇到这个问题的原因是因为数据库(你可能没有任何控制权)违反了第一个正常形式.除其他外,第一个普通形式表示每列应该包含单个值,而不是多个值.这是糟糕的设计.
现在,说到这里,第一个突然出现的解决方案是编写一个UDF,根据分隔符解析此列中的值,并返回第一个或第二个值.
兰迪
你可以尝试这样的事情
DECLARE @Table TABLE(
Val VARCHAR(50)
)
INSERT INTO @Table (Val) SELECT '42,12'
SELECT *,
CAST(LEFT(Val,CHARINDEX(',',Val)-1) AS INT) FirstValue,
CAST(RIGHT(Val,LEN(Val) - CHARINDEX(',',Val)) AS INT) SecondValue
FROM @Table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9696 次 |
| 最近记录: |