我有一個常用的分隔符分割字符串起來,並將它們輸出到一個表具有以下結構的表值函數:表值函數,選擇多行
@ValueLookup TABLE
(
Value nvarchar(100),
ValueIndex int
)
我用這主要是爲了分裂組合ID值,如1234-5678
:
dbo.SplitString('1234-5678', '-')
目前,我使用兩個SELECT
的得到這兩個值一旦被分割,將它們轉換爲整數沿着:
DECLARE @FirstID INT
DECLARE @SecondID INT
SELECT
@FirstID = CONVERT(INT, Value)
FROM dbo.SplitString('1234-5678', '-')
WHERE ValueIndex = 1
SELECT
@SecondID = CONVERT(INT, Value)
FROM dbo.SplitString('1234-5678', '-')
WHERE ValueIndex = 2
有沒有一種方法可以得到兩個值並將它們分配到單個SELECT
聲明中?
優秀的,正是我一直在尋找。我沒有意識到你可以在'CASE'語句中引用另一個行值。因爲我有幾分鐘才能接受,所以我很好奇那裏使用了'MIN'嗎?這只是轉換的一個好習慣嗎? – X3074861X
@ X3074861X'min()'的選擇是任意的。你可以使用'max()'。如果您在聚合函數內而不是在外面轉換爲「int」,則也可以使用sum()。 – SqlZim